<!--?xml version="1.0" encoding="UTF-8"?--><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>V2V Guide</title>
  <link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" />
  <link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" />
  <meta name="generator" content="publican 2.8" />
  <meta name="package" content="Red_Hat_Enterprise_Linux-V2V_Guide-6-en-US-3.0-0" />
  <meta name="description" content="This book is a guide to importing virtual machines from foreign hypervisors to Red Hat Enterprise Virtualization and KVM managed by libvirt." />
  <style>
   .auditor-diff-mode-equals{background-color:inherit}.auditor-diff-mode-added{background-color:#cef}
  </style>
 </head>
 <body>
  <p id="title"><a class="left" href="http://www.redhat.com"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.redhat.com"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p>
  <div xml:lang="en-US" class="book" id="id582608" lang="en-US">
   <div class="titlepage auditor-diff-mode-equals">
    <div>
     <div class="producttitle">
      <span class="productname">Red Hat Enterprise Linux</span> 
      <span class="productnumber">6</span>
     </div>
     <div>
      <h1 id="id582608" class="title">V2V Guide</h1>
     </div>
     <div>
      <h2 class="subtitle">Importing Virtual Machines with virt-v2v</h2>
     </div>
     <p class="edition">Edition 3.0</p>
     <div>
      <h3 class="corpauthor"> <span class="inlinemediaobject"><object data="Common_Content/images/title_logo.svg" type="image/svg+xml"> </object></span> </h3>
     </div>
     <div>
      <div xml:lang="en-US" class="authorgroup" lang="en-US">
       <div class="author">
        <h3 class="author"><span class="firstname">Laura</span> <span class="surname">Bailey</span></h3>
        <div class="affiliation">
         <span class="orgname">Red Hat</span> 
         <span class="orgdiv">Engineering Content Services</span>
        </div>
        <code class="email"><a class="email" href="mailto:lbailey@redhat.com">lbailey@redhat.com</a></code>
       </div>
       <div class="author">
        <h3 class="author"><span class="firstname">Tim</span> <span class="surname">Hildred</span></h3>
        <div class="affiliation">
         <span class="orgname">Red Hat</span> 
         <span class="orgdiv">Engineering Content Services</span>
        </div>
        <code class="email"><a class="email" href="mailto:thildred@redhat.com">thildred@redhat.com</a></code>
       </div>
       <div class="author">
        <h3 class="author"><span class="firstname">David</span> <span class="surname">Jorm</span></h3>
        <div class="affiliation">
         <span class="orgname">Red Hat</span> 
         <span class="orgdiv">Engineering Content Services</span>
        </div>
        <code class="email"><a class="email" href="mailto:djorm@redhat.com">djorm@redhat.com</a></code>
       </div>
      </div>
     </div>
     <hr />
     <div>
      <div id="id594920" class="legalnotice">
       <h1 class="legalnotice">Legal Notice</h1>
       <div class="para">
         Copyright 
        <span class="trademark"></span>&copy; 2011 Red Hat, Inc. 
       </div>
       <div class="para">
         The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license (&quot;CC-BY-SA&quot;). An explanation of CC-BY-SA is available at 
        <a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a>. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. 
       </div>
       <div class="para">
         Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. 
       </div>
       <div class="para">
         Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. 
       </div>
       <div class="para"> 
        <span class="trademark">Linux</span>&reg; is the registered trademark of Linus Torvalds in the United States and other countries. 
       </div>
       <div class="para"> 
        <span class="trademark">Java</span>&reg; is a registered trademark of Oracle and/or its affiliates. 
       </div>
       <div class="para"> 
        <span class="trademark">XFS</span>&reg; is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. 
       </div>
       <div class="para"> 
        <span class="trademark">MySQL</span>&reg; is a registered trademark of MySQL AB in the United States, the European Union and other countries. 
       </div>
       <div class="para">
         All other trademarks are the property of their respective owners. 
       </div>
       <div class="para"> 
        <div class="address">
         <p><br /> <span class="street">1801&nbsp;Varsity&nbsp;Drive</span><br /> &nbsp;<span class="city">Raleigh</span>,&nbsp;<span class="state">NC</span>&nbsp;<span class="postcode">27606-2072</span>&nbsp;<span class="country">USA</span><br /> &nbsp;<span class="phone">Phone:&nbsp;+1&nbsp;919&nbsp;754&nbsp;3700</span><br /> &nbsp;<span class="phone">Phone:&nbsp;888&nbsp;733&nbsp;4281</span><br /> &nbsp;<span class="fax">Fax:&nbsp;+1&nbsp;919&nbsp;754&nbsp;3701</span><br /> <br /> </p>
        </div> 
       </div>
      </div>
     </div>
     <div>
      <div class="abstract">
       <h6>Abstract</h6>
       <div class="para">
         This book is a guide to importing virtual machines from foreign hypervisors to Red Hat Enterprise Virtualization and KVM managed by libvirt. 
       </div>
      </div>
     </div>
    </div>
    <hr />
   </div>
   <div class="toc auditor-diff-mode-equals">
    <dl>
     <dt>
      <span class="preface"><a href="#pref-V2V_Guide-Preface">Preface</a></span>
     </dt>
     <dd>
      <dl>
       <dt>
        <span class="section"><a href="#sect-V2V_Guide-Preface-About_this_Guide">1. About this Guide</a></span>
       </dt>
       <dd>
        <dl>
         <dt>
          <span class="section"><a href="#Sections_DocSuites_RHEV_3_Documentation_Suite">1.1. Documentation Suite</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#sect-V2V_Guide-About_this_Guide-Audience">1.2. Audience</a></span>
         </dt>
        </dl>
       </dd>
       <dt>
        <span class="section"><a href="#id400684">2. Document Conventions</a></span>
       </dt>
       <dd>
        <dl>
         <dt>
          <span class="section"><a href="#id614196">2.1. Typographic Conventions</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#id766081">2.2. Pull-quote Conventions</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#id617802">2.3. Notes and Warnings</a></span>
         </dt>
        </dl>
       </dd>
       <dt>
        <span class="section"><a href="#sect-V2V_Guide-We_Need_Feedback">3. We Need Feedback!</a></span>
       </dt>
      </dl>
     </dd>
     <dt>
      <span class="chapter"><a href="#chap-V2V_Guide-Introducing_V2V">1. Introducing V2V</a></span>
     </dt>
     <dd>
      <dl>
       <dt>
        <span class="section"><a href="#sect-V2V_Guide-Introducing_V2V-Installing_virt_v2v">1.1. Installing virt-v2v</a></span>
       </dt>
      </dl>
     </dd>
     <dt>
      <span class="chapter"><a href="#chap-V2V_Guide-Converting_Virtual_Machines_to_Run_on_KVM_Managed_by_libvirt">2. Converting Virtual Machines to Run on KVM Managed by libvirt</a></span>
     </dt>
     <dd>
      <dl>
       <dt>
        <span class="section"><a href="#sect-V2V_Guide-Converting_Virtual_Machines_to_Run_on_KVM_Managed_by_libvirt-Converting_a_Virtual_Machine">2.1. Converting a Virtual Machine</a></span>
       </dt>
       <dd>
        <dl>
         <dt>
          <span class="section"><a href="#sect-V2V_Guide-Converting_a_Virtual_Machine-Preparing_to_Convert_a_Virtual_Machine">2.1.1. Preparing to Convert a Virtual Machine</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#sect-V2V_Guide-Converting_a_Virtual_Machine-Converting_Virtual_Machines">2.1.2. Converting Virtual Machines</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#sect-RHEL-Running_Converted_Virtual_Machines">2.1.3. Running Converted Virtual Machines</a></span>
         </dt>
        </dl>
       </dd>
      </dl>
     </dd>
     <dt>
      <span class="chapter"><a href="#chap-V2V-VMS_To_Run_on_RHEV">3. Converting Virtual Machines to Run on Red Hat Enterprise Virtualization</a></span>
     </dt>
     <dd>
      <dl>
       <dt>
        <span class="section"><a href="#Acceptable_Converted_Storage_Output_Formats">3.1. Acceptable Converted Storage Output Formats</a></span>
       </dt>
       <dt>
        <span class="section"><a href="#sect-Attaching_an_Export_Storage_Domain">3.2. Attaching an Export Storage Domain</a></span>
       </dt>
       <dt>
        <span class="section"><a href="#sect-RHEV_Converting_a_Virtual_Machine">3.3. Converting a Virtual Machine</a></span>
       </dt>
       <dd>
        <dl>
         <dt>
          <span class="section"><a href="#sect-Preparing_to_Convert_a_Virtual_Machine">3.3.1. Preparing to Convert a Virtual Machine</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#sect-Converting_a_Virtual_Machine">3.3.2. Converting a Virtual Machine</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#sect-RHEV-Importing_and_Running_the_Converted_Virtual_Machine">3.3.3. Importing and Running the Converted Virtual Machine</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#sect-Scripting_the_v2v_Process">3.3.4. Scripting the v2v Process</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#sect-Scripted_Bulk_v2v_Process">3.3.5. Scripted Bulk v2v Process</a></span>
         </dt>
        </dl>
       </dd>
      </dl>
     </dd>
     <dt>
      <span class="chapter"><a href="#chap-V2V_Guide-P2V_Migration_Converting_Physical_Machines_to_Virtual_Machines">4. Converting Physical Machines to Virtual Machines</a></span>
     </dt>
     <dd>
      <dl>
       <dt>
        <span class="section"><a href="#P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Hardware_and_Software_Requirements_for_P2V_Conversion">4.1. Prerequisites</a></span>
       </dt>
       <dt>
        <span class="section"><a href="#P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Preperation_Before_the_P2V_Migration">4.2. Preparing to Convert a Physical Machine.</a></span>
       </dt>
       <dd>
        <dl>
         <dt>
          <span class="section"><a href="#Preperation_Before_the_P2V_Migration-Install_virt_v2v_on_V2V_host">4.2.1. Install virt-v2v on Conversion Server.</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#Preperation_Before_the_P2V_Migration-Enable_Root_Login_over_SSH">4.2.2. Enable Root Login over SSH.</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#Preperation_Before_the_P2V_Migration-Define_a_Host_Profile_in_virt_v2v.conf">4.2.3. Define a Target Profile in <code class="filename">virt-v2v.conf</code></a></span>
         </dt>
         <dt>
          <span class="section"><a href="#Preperation_Before_the_P2V_Migration-Download_P2V_ISO_from_RHN">4.2.4. Create the Bootable Media.</a></span>
         </dt>
        </dl>
       </dd>
       <dt>
        <span class="section"><a href="#P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Converting_Physical_Machines_to_Virtual_Machines">4.3. Converting Physical Machines to Virtual Machines.</a></span>
       </dt>
       <dt>
        <span class="section"><a href="#P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Importing_and_Running_Converted_Virtual_Machines_on_Target_Hypervisors">4.4. Importing and Running Converted Virtual Machines on Target Hypervisors</a></span>
       </dt>
      </dl>
     </dd>
     <dt>
      <span class="chapter"><a href="#chap-V2V_Guide-Debugging_and_Troubleshooting">5. Debugging and Troubleshooting.</a></span>
     </dt>
     <dd>
      <dl>
       <dt>
        <span class="section"><a href="#sect-v2v_general">5.1. Debugging V2V conversions</a></span>
       </dt>
      </dl>
     </dd>
     <dt>
      <span class="chapter"><a href="#chap-V2V_Guide-References">6. References</a></span>
     </dt>
     <dd>
      <dl>
       <dt>
        <span class="section"><a href="#References_Virtualization__virt-v2v_Parameters">6.1. virt-v2v Parameters</a></span>
       </dt>
       <dt>
        <span class="section"><a href="#sect-V2V_Guide-References-Configuration_Changes">6.2. Configuration Changes</a></span>
       </dt>
       <dd>
        <dl>
         <dt>
          <span class="section"><a href="#References_Virtualization__virt-v2v_Configuration_Changes_Linux">6.2.1. Configuration Changes for Linux Virtual Machines</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#sect-V2V_Guide-Configuration_Changes-Configuration_Changes_for_Windows_Virtual_Machines">6.2.2. Configuration Changes for Windows Virtual Machines</a></span>
         </dt>
        </dl>
       </dd>
      </dl>
     </dd>
     <dt>
      <span class="appendix"><a href="#Appendix_Additional_Procedures">A. Additional Procedures</a></span>
     </dt>
     <dd>
      <dl>
       <dt>
        <span class="section"><a href="#Creating_Bootable_Media">A.1. Creating Bootable Media</a></span>
       </dt>
       <dd>
        <dl>
         <dt>
          <span class="section"><a href="#From_CD">A.1.1. Create a P2V Client Boot CD</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#From_USB">A.1.2. Create a Bootable P2V USB Media</a></span>
         </dt>
         <dt>
          <span class="section"><a href="#From_PXE">A.1.3. Create a PXE Boot Image</a></span>
         </dt>
        </dl>
       </dd>
      </dl>
     </dd>
     <dt>
      <span class="appendix"><a href="#appe-V2V_Guide-Revision_History">B. Revision History</a></span>
     </dt>
    </dl>
   </div>
   <div xml:lang="en-US" class="preface auditor-diff-mode-equals" id="pref-V2V_Guide-Preface" lang="en-US">
    <div class="titlepage">
     <div>
      <div>
       <h1 class="title">Preface</h1>
      </div>
     </div>
    </div>
    <div class="para">
      The Red Hat Enterprise Virtualization platform is a richly featured virtualization management solution providing fully integrated management across virtual machines. It is based on the leading open source virtualization platform and provides superior technical capabilities. The platform offers scalability in the management of large numbers of virtual machines. 
    </div>
    <div class="para"> 
    </div>
    <div class="section" id="sect-V2V_Guide-Preface-About_this_Guide">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="sect-V2V_Guide-Preface-About_this_Guide">1.&nbsp;About this Guide</h2>
       </div>
      </div>
     </div>
     <div class="para">
       This guide describes how to import virtual machines from foreign hypervisors to Red Hat Enterprise Virtualization and KVM managed by libvirt. 
     </div>
     <div class="section" id="Sections_DocSuites_RHEV_3_Documentation_Suite">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="Sections_DocSuites_RHEV_3_Documentation_Suite">1.1.&nbsp;Documentation Suite</h3>
        </div>
       </div>
      </div>
      <div class="para">
        The Red Hat Enterprise Virtualization documentation suite provides information on installation, development of applications, configuration and usage of the Red Hat Enterprise Virtualization platform and its related products. 
      </div>
      <div class="itemizedlist">
       <ul>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Virtualization — Administration Guide</em>
          <span> (the book you are reading)</span> describes how to setup, configure and manage Red Hat Enterprise Virtualization. It assumes that you have successfully installed the Red Hat Enterprise Virtualization Manager and hosts. 
         </div></li>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Virtualization — Evaluation Guide</em>
          <span> (the book you are reading)</span> enables prospective customers to evaluate the features of Red Hat Enterprise Virtualization. Use this guide if you have an evaluation license. 
         </div></li>
        <li class="listitem">
         <div class="para">
          <em class="citetitle">Red Hat Enterprise Virtualization — Installation Guide</em>
          <span> (the book you are reading)</span> describes the installation prerequisites and procedures. Read this if you need to install Red Hat Enterprise Virtualization. The installation of hosts, Manager and storage are covered in this guide. You will need to refer to the 
          <em class="citetitle">Red Hat Enterprise Virtualization Administration Guide</em> to configure the system before you can start using the platform. 
         </div></li>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Virtualization — Manager Release Notes</em>
          <span> (the book you are reading)</span> contain release specific information for Red Hat Enterprise Virtualization Managers. 
         </div></li>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Virtualization — Power User Portal Guide</em>
          <span> (the book you are reading)</span> describes how power users can create and manage virtual machines from the Red Hat Enterprise Virtualization user portal. 
         </div></li>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Virtualization — Quick Start Guide</em>
          <span> (the book you are reading)</span> provides quick and simple instructions for first time users to set up a basic Red Hat Enterprise Virtualization environment. 
         </div></li>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Virtualization — REST API Guide</em>
          <span> (the book you are reading)</span> describes how to use the REST API to set up and manage virtualization tasks. Use this guide if you wish to develop systems which integrate with Red Hat Enterprise Virtualization, using an open and platform independent API. 
         </div></li>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Virtualization — Technical Reference Guide</em>
          <span> (the book you are reading)</span> describes the technical architecture of Red Hat Enterprise Virtualization and its interactions with existing infrastructure. 
         </div></li>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Virtualization — User Portal Guide</em>
          <span> (the book you are reading)</span> describes how users of the Red Hat Enterprise Virtualization system can access and use virtual desktops from the user portal. 
         </div></li>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Linux — Hypervisor Deployment Guide</em>
          <span> (the book you are reading)</span> describes how to deploy and install the Hypervisor. Read this guide if you need advanced information about installing and deploying Hypervisors. The basic installation of Hypervisor hosts is also described in the 
          <em class="citetitle">Red Hat Enterprise Virtualization Installation Guide</em>. 
         </div></li>
        <li class="listitem">
         <div class="para"> 
          <em class="citetitle">Red Hat Enterprise Linux — V2V Guide</em>
          <span> (the book you are reading)</span> describes importing virtual machines from KVM, Xen and VMware ESX to Red Hat Enterprise Virtualization and KVM managed by libvirt. 
         </div></li>
       </ul>
      </div>
     </div>
     <div class="section" id="sect-V2V_Guide-About_this_Guide-Audience">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-V2V_Guide-About_this_Guide-Audience">1.2.&nbsp;Audience</h3>
        </div>
       </div>
      </div>
      <div class="para">
        This guide is intended for system administrators who manage a virtualized environment using Red Hat Enterprise Virtualization or Red Hat Enterprise Linux. An advanced level of system administration, preferably including familiarity with virtual machine data center operations, is assumed. This document is not intended for beginners. 
      </div>
     </div>
    </div>
    <div xml:lang="en-US" class="section" lang="en-US">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="id400684">2.&nbsp;Document Conventions</h2>
       </div>
      </div>
     </div>
     <div class="para">
       This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information. 
     </div>
     <div class="para">
       In PDF and paper editions, this manual uses typefaces drawn from the 
      <a href="https://fedorahosted.org/liberation-fonts/">Liberation Fonts</a> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default. 
     </div>
     <div class="section">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="id614196">2.1.&nbsp;Typographic Conventions</h3>
        </div>
       </div>
      </div>
      <div class="para">
        Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows. 
      </div>
      <div class="para"> 
       <code class="literal">Mono-spaced Bold</code> 
      </div>
      <div class="para">
        Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example: 
      </div>
      <div class="blockquote">
       <blockquote class="blockquote">
        <div class="para">
          To see the contents of the file 
         <code class="filename">my_next_bestselling_novel</code> in your current working directory, enter the 
         <code class="command">cat my_next_bestselling_novel</code> command at the shell prompt and press 
         <span class="keycap"><strong>Enter</strong></span> to execute the command. 
        </div>
       </blockquote>
      </div>
      <div class="para">
        The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context. 
      </div>
      <div class="para">
        Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example: 
      </div>
      <div class="blockquote">
       <blockquote class="blockquote">
        <div class="para">
          Press 
         <span class="keycap"><strong>Enter</strong></span> to execute the command. 
        </div>
        <div class="para">
          Press 
         <span class="keycap"><strong>Ctrl</strong></span>+
         <span class="keycap"><strong>Alt</strong></span>+
         <span class="keycap"><strong>F2</strong></span> to switch to the first virtual terminal. Press 
         <span class="keycap"><strong>Ctrl</strong></span>+
         <span class="keycap"><strong>Alt</strong></span>+
         <span class="keycap"><strong>F1</strong></span> to return to your X-Windows session. 
        </div>
       </blockquote>
      </div>
      <div class="para">
        The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously). 
      </div>
      <div class="para">
        If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in 
       <code class="literal">mono-spaced bold</code>. For example: 
      </div>
      <div class="blockquote">
       <blockquote class="blockquote">
        <div class="para">
          File-related classes include 
         <code class="classname">filesystem</code> for file systems, 
         <code class="classname">file</code> for files, and 
         <code class="classname">dir</code> for directories. Each class has its own associated set of permissions. 
        </div>
       </blockquote>
      </div>
      <div class="para"> 
       <span class="application"><strong>Proportional Bold</strong></span> 
      </div>
      <div class="para">
        This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example: 
      </div>
      <div class="blockquote">
       <blockquote class="blockquote">
        <div class="para">
          Choose 
         <span class="guimenu"><strong>System</strong></span> → 
         <span class="guisubmenu"><strong>Preferences</strong></span> → 
         <span class="guimenuitem"><strong>Mouse</strong></span> from the main menu bar to launch 
         <span class="application"><strong>Mouse Preferences</strong></span>. In the 
         <span class="guilabel"><strong>Buttons</strong></span> tab, click the 
         <span class="guilabel"><strong>Left-handed mouse</strong></span> check box and click 
         <span class="guibutton"><strong>Close</strong></span> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand). 
        </div>
        <div class="para">
          To insert a special character into a 
         <span class="application"><strong>gedit</strong></span> file, choose 
         <span class="guimenu"><strong>Applications</strong></span> → 
         <span class="guisubmenu"><strong>Accessories</strong></span> → 
         <span class="guimenuitem"><strong>Character Map</strong></span> from the main menu bar. Next, choose 
         <span class="guimenu"><strong>Search</strong></span> → 
         <span class="guimenuitem"><strong>Find…</strong></span> from the 
         <span class="application"><strong>Character Map</strong></span> menu bar, type the name of the character in the 
         <span class="guilabel"><strong>Search</strong></span> field and click 
         <span class="guibutton"><strong>Next</strong></span>. The character you sought will be highlighted in the 
         <span class="guilabel"><strong>Character Table</strong></span>. Double-click this highlighted character to place it in the 
         <span class="guilabel"><strong>Text to copy</strong></span> field and then click the 
         <span class="guibutton"><strong>Copy</strong></span> button. Now switch back to your document and choose 
         <span class="guimenu"><strong>Edit</strong></span> → 
         <span class="guimenuitem"><strong>Paste</strong></span> from the 
         <span class="application"><strong>gedit</strong></span> menu bar. 
        </div>
       </blockquote>
      </div>
      <div class="para">
        The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context. 
      </div>
      <div class="para"> 
       <code class="command"><em class="replaceable"><code>Mono-spaced Bold Italic</code></em></code> or 
       <span class="application"><strong><em class="replaceable"><code>Proportional Bold Italic</code></em></strong></span> 
      </div>
      <div class="para">
        Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example: 
      </div>
      <div class="blockquote">
       <blockquote class="blockquote">
        <div class="para">
          To connect to a remote machine using ssh, type 
         <code class="command">ssh <em class="replaceable"><code>username</code></em>@<em class="replaceable"><code>domain.name</code></em></code> at a shell prompt. If the remote machine is 
         <code class="filename">example.com</code> and your username on that machine is john, type 
         <code class="command">ssh john@example.com</code>. 
        </div>
        <div class="para">
          The 
         <code class="command">mount -o remount <em class="replaceable"><code>file-system</code></em></code> command remounts the named file system. For example, to remount the 
         <code class="filename">/home</code> file system, the command is 
         <code class="command">mount -o remount /home</code>. 
        </div>
        <div class="para">
          To see the version of a currently installed package, use the 
         <code class="command">rpm -q <em class="replaceable"><code>package</code></em></code> command. It will return a result as follows: 
         <code class="command"><em class="replaceable"><code>package-version-release</code></em></code>. 
        </div>
       </blockquote>
      </div>
      <div class="para">
        Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system. 
      </div>
      <div class="para">
        Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example: 
      </div>
      <div class="blockquote">
       <blockquote class="blockquote">
        <div class="para">
          Publican is a 
         <em class="firstterm">DocBook</em> publishing system. 
        </div>
       </blockquote>
      </div>
     </div>
     <div class="section">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="id766081">2.2.&nbsp;Pull-quote Conventions</h3>
        </div>
       </div>
      </div>
      <div class="para">
        Terminal output and source code listings are set off visually from the surrounding text. 
      </div>
      <div class="para">
        Output sent to a terminal is set in 
       <code class="computeroutput">mono-spaced roman</code> and presented thus: 
      </div>
      <pre class="screen">books        Desktop   documentation  drafts  mss    photos   stuff  svn
books_tests  Desktop1  downloads      images  notes  scripts  svgs</pre>
      <div class="para">
        Source-code listings are also set in 
       <code class="computeroutput">mono-spaced roman</code> but add syntax highlighting as follows: 
      </div>
      <pre class="programlisting">package org.<span class="perl_Function">jboss</span>.<span class="perl_Function">book</span>.<span class="perl_Function">jca</span>.<span class="perl_Function">ex1</span>;

<span class="perl_Keyword">import</span> javax.naming.InitialContext;

<span class="perl_Keyword">public</span> <span class="perl_Keyword">class</span> ExClient
{
   <span class="perl_Keyword">public</span> <span class="perl_DataType">static</span> <span class="perl_DataType">void</span> <span class="perl_Function">main</span>(String args[]) 
       <span class="perl_Keyword">throws</span> Exception
   {
      InitialContext iniCtx = <span class="perl_Keyword">new</span> InitialContext();
      Object         ref    = iniCtx.<span class="perl_Function">lookup</span>(<span class="perl_String">&quot;EchoBean&quot;</span>);
      EchoHome       home   = (EchoHome) ref;
      Echo           echo   = home.<span class="perl_Function">create</span>();

      System.<span class="perl_Function">out</span>.<span class="perl_Function">println</span>(<span class="perl_String">&quot;Created Echo&quot;</span>);

      System.<span class="perl_Function">out</span>.<span class="perl_Function">println</span>(<span class="perl_String">&quot;Echo.echo('Hello') = &quot;</span> + echo.<span class="perl_Function">echo</span>(<span class="perl_String">&quot;Hello&quot;</span>));
   }
}</pre>
     </div>
     <div class="section">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="id617802">2.3.&nbsp;Notes and Warnings</h3>
        </div>
       </div>
      </div>
      <div class="para">
        Finally, we use three visual styles to draw attention to information that might otherwise be overlooked. 
      </div>
      <div class="note">
       <div class="admonition_header">
        <h2>Note</h2>
       </div>
       <div class="admonition">
        <div class="para">
          Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier. 
        </div>
       </div>
      </div>
      <div class="important">
       <div class="admonition_header">
        <h2>Important</h2>
       </div>
       <div class="admonition">
        <div class="para">
          Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' will not cause data loss but may cause irritation and frustration. 
        </div>
       </div>
      </div>
      <div class="warning">
       <div class="admonition_header">
        <h2>Warning</h2>
       </div>
       <div class="admonition">
        <div class="para">
          Warnings should not be ignored. Ignoring warnings will most likely cause data loss. 
        </div>
       </div>
      </div>
     </div>
    </div>
    <div xml:lang="en-US" class="section" id="sect-V2V_Guide-We_Need_Feedback" lang="en-US">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="sect-V2V_Guide-We_Need_Feedback">3.&nbsp;We Need Feedback!</h2>
       </div>
      </div>
     </div>
     <a id="id617789" class="indexterm"></a>
     <div class="para">
       If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you! Please submit a report in Bugzilla: 
      <a href="http://bugzilla.redhat.com/">http://bugzilla.redhat.com/</a> against the product 
      <span class="application"><strong>Red Hat Enterprise Linux</strong></span>. 
     </div>
     <div class="para">
       When submitting a bug report, be sure to mention the manual's identifier: 
      <em class="citetitle">doc-V2V_Guide</em>. 
     </div>
     <div class="para">
       If you have a suggestion for improving the documentation, try to be as specific as possible when describing it. If you have found an error, include the section number and some of the surrounding text so we can find it easily. 
     </div>
    </div>
   </div>
   <div xml:lang="en-US" class="chapter auditor-diff-mode-equals" id="chap-V2V_Guide-Introducing_V2V" lang="en-US">
    <div class="titlepage">
     <div>
      <div>
       <h2 class="title">Chapter&nbsp;1.&nbsp;Introducing V2V</h2>
      </div>
     </div>
    </div>
    <div class="toc">
     <dl>
      <dt>
       <span class="section"><a href="#sect-V2V_Guide-Introducing_V2V-Installing_virt_v2v">1.1. Installing virt-v2v</a></span>
      </dt>
     </dl>
    </div>
    <div class="para">
      V2V is an acronym for virtual to virtual, referring to the process of importing virtual machines from one virtualization platform to another. Red Hat Enterprise Virtualization and Red Hat Enterprise Linux are capable of performing V2V operations using the 
     <code class="command">virt-v2v</code> command. 
    </div>
    <div class="variablelist">
     <dl>
      <dt class="varlistentry">
       <span class="term"> virt-v2v </span>
      </dt>
      <dd>
       <div class="para">
         The 
        <code class="command">virt-v2v</code> command converts virtual machines from a foreign hypervisor to run on KVM, managed by Red Hat Enterprise Virtualization or libvirt. 
        <code class="command">virt-v2v</code> can currently convert Red Hat Enterprise Linux 4, Red Hat Enterprise Linux 5, Red Hat Enterprise Linux 6, Windows XP, Windows Vista, Windows 7, Windows Server 2003 and Windows Server 2008 virtual machines running on Xen, KVM and VMware ESX. 
        <code class="command">virt-v2v</code> enables para-virtualized (
        <code class="command">virtio</code>) drivers in the converted virtual machine if possible. 
       </div>
      </dd>
     </dl>
    </div>
    <div class="para">
      The following guest operating systems are supported by 
     <code class="command">virt-v2v</code>: 
    </div>
    <div class="itemizedlist" id="References_Virtualization_virt-v2v_Supported_Guest_Operating_Systems">
     <ul>
      <li class="listitem">
       <div class="para">
        Red Hat Enterprise Linux 4
       </div></li>
      <li class="listitem">
       <div class="para">
        Red Hat Enterprise Linux 5
       </div></li>
      <li class="listitem">
       <div class="para">
        Red Hat Enterprise Linux 6
       </div></li>
      <li class="listitem">
       <div class="para">
        Windows XP
       </div></li>
      <li class="listitem">
       <div class="para">
        Windows Vista
       </div></li>
      <li class="listitem">
       <div class="para">
        Windows 7
       </div></li>
      <li class="listitem">
       <div class="para">
        Windows Server 2003
       </div></li>
      <li class="listitem">
       <div class="para">
        Windows Server 2008
       </div></li>
     </ul>
    </div>
    <div class="para">
      The following source hypervisors are supported by 
     <code class="command">virt-v2v</code>: 
    </div>
    <div class="itemizedlist" id="References_Virtualization_virt-v2v_Supported_Hypervisors">
     <ul>
      <li class="listitem">
       <div class="para">
        Xen
       </div></li>
      <li class="listitem">
       <div class="para">
        KVM
       </div></li>
      <li class="listitem">
       <div class="para">
        VMware ESX
       </div></li>
     </ul>
    </div>
    <div class="section" id="sect-V2V_Guide-Introducing_V2V-Installing_virt_v2v">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="sect-V2V_Guide-Introducing_V2V-Installing_virt_v2v">1.1.&nbsp;Installing virt-v2v</h2>
       </div>
      </div>
     </div>
     <div class="para"> 
      <code class="command">virt-v2v</code> is run from a Red Hat Enterprise Linux host. It must be installed on the host. 
     </div>
     <div class="procedure">
      <h6>Procedure&nbsp;1.1.&nbsp;Installing virt-v2v</h6>
      <ol class="1">
       <li class="step"><p class="title"><strong>Subscribe to RHN channel</strong></p>
        <div class="para"> 
         <code class="command">virt-v2v</code> is available on Red Hat Network (RHN) in the 
         <span class="guilabel"><strong>Red Hat Enterprise Linux Server (v.6 for 64-bit x86_64)</strong></span> or 
         <span class="guilabel"><strong>Red Hat Enterprise Linux Workstation (v.6 for x86_64)</strong></span> channel. Ensure the system is subscribed to the appropriate channel before installing 
         <code class="command">virt-v2v</code>. 
        </div></li>
       <li class="step"><p class="title"><strong>Install pre-requisites</strong></p>
        <div class="para">
          If you are converting Windows virtual machines, you must install the 
         <span class="package">libguestfs-winsupport</span> and 
         <span class="package">virtio-win</span> packages. These packages provide support for NTFS and Windows para-virtualized block and network drivers. If you attempt to convert a virtual machine using NTFS without the 
         <span class="package">libguestfs-winsupport</span> package installed, the conversion will fail. If you attempt to convert a virtual machine running Windows without the 
         <span class="package">virtio-win</span> package installed, the conversion will fail giving an error message concerning missing files. 
        </div>
        <div class="para">
          The 
         <span class="package">libguestfs-winsupport</span> is available for RHEL Server 6 in the 
         <span class="guilabel"><strong>Red Hat Enterprise Linux Server V2V Tools for Windows (v. 6)</strong></span> channel, while the 
         <span class="package">virtio-win</span> package is available in the 
         <span class="guilabel"><strong>Red Hat Enterprise Linux Server Supplementary (v. 6)</strong></span> channel. To install these packages, ensure that your system has the required permissions to subscribe to both channels and run the following command as root: 
        </div><pre class="screen"><code class="command">rhn-channel -a -c rhel-x86_64-server-supplementary-6 --user USERNAME --password PASSWORD</code></pre><pre class="screen"><code class="command">rhn-channel -a -c rhel-x86_64-server-v2vwin-6 --user USERNAME --password PASSWORD</code></pre><pre class="screen"><code class="command">yum install libguestfs-winsupport virtio-win</code></pre></li>
       <li class="step"><p class="title"><strong>Install virt-v2v package</strong></p>
        <div class="para">
          As root, run the command: 
        </div><pre class="screen"><code class="command">yum install virt-v2v</code></pre></li>
       <li class="step">
        <div class="para">
          Run 
         <code class="command">virt-v2v</code> as the root user from a Linux shell.
        </div></li>
      </ol>
     </div>
    </div>
   </div>
   <div xml:lang="en-US" class="chapter auditor-diff-mode-added" id="chap-V2V_Guide-Converting_Virtual_Machines_to_Run_on_KVM_Managed_by_libvirt" lang="en-US">
    <div class="titlepage">
     <div>
      <div>
       <h2 class="title">Chapter&nbsp;2.&nbsp;Converting Virtual Machines to Run on KVM Managed by libvirt</h2>
      </div>
     </div>
    </div>
    <div class="toc">
     <dl>
      <dt>
       <span class="section"><a href="#sect-V2V_Guide-Converting_Virtual_Machines_to_Run_on_KVM_Managed_by_libvirt-Converting_a_Virtual_Machine">2.1. Converting a Virtual Machine</a></span>
      </dt>
      <dd>
       <dl>
        <dt>
         <span class="section"><a href="#sect-V2V_Guide-Converting_a_Virtual_Machine-Preparing_to_Convert_a_Virtual_Machine">2.1.1. Preparing to Convert a Virtual Machine</a></span>
        </dt>
        <dt>
         <span class="section"><a href="#sect-V2V_Guide-Converting_a_Virtual_Machine-Converting_Virtual_Machines">2.1.2. Converting Virtual Machines</a></span>
        </dt>
        <dt>
         <span class="section"><a href="#sect-RHEL-Running_Converted_Virtual_Machines">2.1.3. Running Converted Virtual Machines</a></span>
        </dt>
       </dl>
      </dd>
     </dl>
    </div>
    <div class="para"> 
     <code class="command">virt-v2v</code> can convert virtual machines to run on Red Hat Enterprise Linux, using KVM managed by libvirt. Virtual machines can be converted from Xen, KVM and VMware ESX environments. 
    </div>
    <div class="section" id="sect-V2V_Guide-Converting_Virtual_Machines_to_Run_on_KVM_Managed_by_libvirt-Converting_a_Virtual_Machine">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="sect-V2V_Guide-Converting_Virtual_Machines_to_Run_on_KVM_Managed_by_libvirt-Converting_a_Virtual_Machine">2.1.&nbsp;Converting a Virtual Machine</h2>
       </div>
      </div>
     </div>
     <div class="para"> 
      <code class="command">virt-v2v</code> converts virtual machines from a foreign hypervisor to run on Red Hat Enterprise Linux, using KVM managed by libvirt. It automatically creates a libvirt domain for the converted virtual machines. 
     </div>
     <div class="para"> 
      <div class="figure" id="figu-V2V_Guide-Converting_a_Virtual_Machine-Converting_a_virtual_machine">
       <div class="figure-contents">
        <div class="mediaobject">
         <img src="images/rhel-v2v-process.png" alt="Converting a virtual machine" />
        </div>
       </div>
       <h6>Figure&nbsp;2.1.&nbsp;Converting a virtual machine</h6>
      </div>
      <br class="figure-break" /> 
     </div>
     <div class="section" id="sect-V2V_Guide-Converting_a_Virtual_Machine-Preparing_to_Convert_a_Virtual_Machine">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-V2V_Guide-Converting_a_Virtual_Machine-Preparing_to_Convert_a_Virtual_Machine">2.1.1.&nbsp;Preparing to Convert a Virtual Machine</h3>
        </div>
       </div>
      </div>
      <div class="para">
        Before a virtual machine can be converted, ensure that the following steps are completed. 
      </div>
      <div class="orderedlist">
       <ol>
        <li class="listitem">
         <div class="para">
           Create a local storage domain for transferred storage 
         </div>
         <div class="para"> 
          <code class="command">virt-v2v</code> copies the guest storage to a locally defined libvirt storage pool during import. This pool can be defined using any libvirt tool, and can be of any type. The simplest way to create a new pool is with 
          <code class="command">virt-manager</code>. Select your host, right click and select details. 
         </div>
         <div class="para"> 
          <div class="figure" id="figu-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Select_host_details">
           <div class="figure-contents">
            <div class="mediaobject">
             <img src="images/v2v-select_host.png" alt="Select host details" />
            </div>
           </div>
           <h6>Figure&nbsp;2.2.&nbsp;Select host details</h6>
          </div>
          <br class="figure-break" /> 
         </div>
         <div class="para">
           Select the 
          <span class="guilabel"><strong>Storage</strong></span> tab. 
         </div>
         <div class="para"> 
          <div class="figure" id="figu-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-The_storage_tab">
           <div class="figure-contents">
            <div class="mediaobject">
             <img src="images/v2v-storage_tab.png" width="444" alt="The storage tab" />
            </div>
           </div>
           <h6>Figure&nbsp;2.3.&nbsp;The storage tab</h6>
          </div>
          <br class="figure-break" /> 
         </div>
         <div class="para">
           Click the plus sign (
          <span class="guilabel"><strong>+</strong></span>) button to add a new storage pool. 
         </div>
         <div class="para"> 
          <div class="figure" id="figu-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Adding_a_storage_pool_step_1">
           <div class="figure-contents">
            <div class="mediaobject">
             <img src="images/v2v-add_storagepool.png" width="444" alt="Adding a storage pool - step 1" />
            </div>
           </div>
           <h6>Figure&nbsp;2.4.&nbsp;Adding a storage pool - step 1</h6>
          </div>
          <br class="figure-break" /> Enter the name for the new storage pool, and select the type of storage target to use. 
         </div>
         <div class="para"> 
          <div class="figure" id="figu-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Adding_a_storage_pool_step_2">
           <div class="figure-contents">
            <div class="mediaobject">
             <img src="images/v2v-add_storagepool-2.png" width="444" alt="Adding a storage pool - step 2" />
            </div>
           </div>
           <h6>Figure&nbsp;2.5.&nbsp;Adding a storage pool - step 2</h6>
          </div>
          <br class="figure-break" /> Specify the path to the storage target, along with any type-specific details. 
         </div></li>
        <li class="listitem">
         <div class="para">
           Create local network interfaces. 
         </div>
         <div class="para">
           The local machine must have an appropriate network to which the converted virtual machine can connect. This is likely to be a bridge interface. A bridge interface can be created using standard tools on the host. 
          <code class="command">virt-manager</code> can also create and manage bridges. For more information on bridged networking with libvirt, see the 
          <em class="citetitle">Red Hat Enterprise Linux Virtualization Guide</em>. 
         </div></li>
        <li class="listitem">
         <div class="para">
           Specify network mappings in 
          <code class="filename">virt-v2v.conf</code>. This step is 
          <span class="emphasis"><em>optional</em></span>, and is not required for most use cases. 
         </div>
         <div class="para">
           If your virtual machine has multiple network interfaces, 
          <code class="filename">/etc/virt-v2v.conf</code> must be edited to specify the network mapping for all interfaces. You can specify an alternative 
          <code class="filename">virt-v2v.conf</code> file with the 
          <em class="parameter"><code>-f</code></em> parameter. 
         </div>
         <div class="para">
           If your virtual machine only has a single network interface, it is simpler to use the 
          <em class="parameter"><code>--network</code></em> or 
          <em class="parameter"><code>--bridge</code></em> parameters, rather than modifying 
          <code class="filename">virt-v2v.conf</code>. 
         </div></li>
        <li class="listitem">
         <div class="para">
           Create a profile for the conversion in 
          <code class="filename">virt-v2v.conf</code>. This step is 
          <span class="emphasis"><em>optional</em></span>. Profiles specify a conversion method, storage location, output format and allocation policy. When a profile is defined, it can be called using 
          <em class="parameter"><code>--profile</code></em> rather than individually providing the 
          <em class="parameter"><code>-o</code></em>, 
          <em class="parameter"><code>-os</code></em>, 
          <em class="parameter"><code>-of</code></em> and 
          <em class="parameter"><code>-oa</code></em> parameters. See 
          <span class="citerefentry"><span class="refentrytitle">virt-v2v.conf</span>(5)</span> for details. 
         </div></li>
       </ol>
      </div>
      <div class="section" id="sect-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Preparing_to_convert_a_virtual_machine_running_Linux">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Preparing_to_convert_a_virtual_machine_running_Linux">2.1.1.1.&nbsp;Preparing to convert a virtual machine running Linux</h4>
         </div>
        </div>
       </div>
       <div class="para">
         Before a virtual machine running Linux can be converted, ensure that the following steps are completed. 
       </div>
       <div class="orderedlist">
        <ol>
         <li class="listitem">
          <div class="para">
            Obtain the software 
          </div>
          <div class="para">
            As part of the conversion process, 
           <code class="command">virt-v2v</code> may install a new kernel and drivers on the virtual machine. If the virtual machine being converted is registered to Red Hat Network (RHN), the required packages will be automatically downloaded. If the virtual machine is not registered to RHN, the 
           <code class="filename">virt-v2v.db</code> file ships with a list of RPMs used for this purpose. The RPMs relevant to your virtual machine must be downloaded manually from RHN and made available on the host running 
           <code class="command">virt-v2v</code>. The RPMs should be saved in the directory specified by the 
           <em class="parameter"><code>path-root</code></em> configuration element, which by default is 
           <code class="filename">/var/lib/virt-v2v/software/</code>. An error similar to 
           <a class="xref" href="#exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Linux-Missing_Package_error">Example&nbsp;2.1, “Missing Package error”</a> will be displayed by 
           <code class="command">virt-v2v</code> if software it depends upon for a particular conversion is not available. 
          </div>
          <div class="example" id="exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Linux-Missing_Package_error">
           <h6>Example&nbsp;2.1.&nbsp;Missing Package error</h6>
           <div class="example-contents">
            <pre class="screen">virt-v2v: Installation failed because the following files referenced in the configuration file are required, but missing:
rhel/6/kernel-2.6.32-128.el6.x86_64.rpm
rhel/6/ecryptfs-utils-82-6.el6.x86_64.rpm
rhel/6/ecryptfs-utils-82-6.el6.i686.rpm
</pre>
           </div>
          </div><br class="example-break" />
          <div class="para">
            To obtain the relevant RPMs for your environment, repeat these steps for each missing package: 
          </div>
          <div class="procedure">
           <ol class="1">
            <li class="step">
             <div class="para">
               Login to 
              <a href="https://rhn.redhat.com/rhn/software/channels/All.do">Red Hat Network</a> 
             </div></li>
            <li class="step">
             <div class="para">
               Select the 
              <span class="guilabel"><strong>Package Search</strong></span> tab. 
             </div></li>
            <li class="step">
             <div class="para">
               In the 
              <span class="guilabel"><strong>Search For</strong></span> field, type the package name exactly matching the one shown in the error message. For the example shown in 
              <a class="xref" href="#exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Linux-Missing_Package_error">Example&nbsp;2.1, “Missing Package error”</a>, the first package is 
              <span class="guilabel"><strong>kernel-2.6.32-128.el6.x86_64</strong></span> 
             </div></li>
            <li class="step">
             <div class="para">
               In the 
              <span class="guilabel"><strong>Where to search</strong></span> field, select 
              <span class="guilabel"><strong>In the following architectures</strong></span> and tick the 
              <span class="guilabel"><strong>x86_64</strong></span> checkbox. Click 
              <span class="guilabel"><strong>Search</strong></span>. 
             </div></li>
            <li class="step">
             <div class="para">
               A list of packages displays. Click the package name identical to the one in the error message. 
             </div></li>
            <li class="step">
             <div class="para">
               You will be directed to the Details page, containing detailed descriptions of the package. Select 
              <span class="guilabel"><strong>Download Package</strong></span> at the bottom of the page 
             </div></li>
            <li class="step">
             <div class="para">
               Save the downloaded package to the appropriate directory in 
              <code class="filename">/var/lib/virt-v2v/software</code>. For Red Hat Enterprise Linux 6, the directory is 
              <code class="filename">/var/lib/virt-v2v/software/rhel/6</code> 
             </div></li>
           </ol>
          </div></li>
        </ol>
       </div>
      </div>
      <div class="section" id="sect-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Preparing_to_convert_a_virtual_machine_running_Windows">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Preparing_to_convert_a_virtual_machine_running_Windows">2.1.1.2.&nbsp;Preparing to convert a virtual machine running Windows</h4>
         </div>
        </div>
       </div>
       <div class="important">
        <div class="admonition_header">
         <h2>Windows Recovery Console</h2>
        </div>
        <div class="admonition">
         <div class="para">
           virt-v2v does not support conversion of the Windows Recovery Console. If a guest has a recovery console installed and VirtIO was enabled during conversion, attempting to boot the recovery console will result in a stop error. 
         </div>
         <div class="para">
           Windows XP x86 does not support the Windows Recovery Console on VirtIO systems, so there is no resolution to this. However, on Windows XP AMD64 and Windows 2003 (x86 and AMD64), the recovery console can be re-installed after conversion. The re-installation procedure is the same as the initial installation procedure. It is not necessary to remove the recovery console first. Following re-installation, the recovery console will work as intended. 
         </div>
        </div>
       </div>
       <div class="para">
         Before a virtual machine running Windows can be converted, ensure that the following steps are completed. 
       </div>
       <div class="procedure">
        <ol class="1">
         <li class="step">
          <div class="para">
            Install the 
           <span class="package">libguestfs-winsupport</span> package on the host running 
           <code class="command">virt-v2v</code>. This package provides support for NTFS, which is used by many Windows systems. The 
           <span class="package">libguestfs-winsupport</span> package is provided by the 
           <span class="guilabel"><strong>RHEL V2VWIN (v. 6 for 64-bit x86_64)</strong></span> channel. Ensure your system is subscribed to this channel, then run the following command as root: 
          </div><pre class="screen"><code class="command">yum install libguestfs-winsupport</code></pre>
          <div class="para">
            If you attempt to convert a virtual machine using NTFS without the 
           <span class="package">libguestfs-winsupport</span> package installed, the conversion will fail. An error message similar to 
           <a class="xref" href="#exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Windows-Error_message_when_converting_a_Windows_virtual_machine_without_libguestfs_winsupport_installed">Example&nbsp;2.2, “Error message when converting a Windows virtual machine without libguestfs-winsupport installed”</a> will be shown. 
          </div>
          <div class="example" id="exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Windows-Error_message_when_converting_a_Windows_virtual_machine_without_libguestfs_winsupport_installed">
           <h6>Example&nbsp;2.2.&nbsp;Error message when converting a Windows virtual machine without libguestfs-winsupport installed</h6>
           <div class="example-contents">
            <pre class="screen">No operating system could be detected inside this disk image.

This may be because the file is not a disk image, or is not a virtual machine
image, or because the OS type is not understood by virt-inspector.

If you feel this is an error, please file a bug report including as much
information about the disk image as possible.</pre>
           </div>
          </div><br class="example-break" /></li>
         <li class="step">
          <div class="para">
            Install the 
           <span class="package">virtio-win</span> package on the host running 
           <code class="command">virt-v2v</code>. This package provides para-virtualized block and network drivers for Windows guests. The 
           <span class="package">virtio-win</span> package is provided by the 
           <span class="guilabel"><strong>RHEL Server Supplementary (v. 6 64-bit x86_64)</strong></span> channel. Ensure your system is subscribed to this channel, then run the following command as root: 
          </div><pre class="screen"><code class="command">yum install virtio-win</code></pre>
          <div class="para">
            If you attempt to convert a virtual machine running Windows without the 
           <span class="package">virtio-win</span> package installed, the conversion will fail. An error message similar to 
           <a class="xref" href="#exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Windows-Error_message_when_converting_a_Windows_virtual_machine_without_virtio_win_installed">Example&nbsp;2.3, “Error message when converting a Windows virtual machine without virtio-win installed”</a> will be shown. 
          </div>
          <div class="example" id="exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Windows-Error_message_when_converting_a_Windows_virtual_machine_without_virtio_win_installed">
           <h6>Example&nbsp;2.3.&nbsp;Error message when converting a Windows virtual machine without virtio-win installed</h6>
           <div class="example-contents">
            <pre class="screen">virt-v2v: Installation failed because the following files referenced in the configuration file are required, but missing: /usr/share/virtio-win/drivers/i386/Win2008</pre>
           </div>
          </div><br class="example-break" /></li>
        </ol>
       </div>
       <div class="note">
        <div class="admonition_header">
         <h2>Post-processing for Windows virtual machines</h2>
        </div>
        <div class="admonition">
         <div class="para">
           When virtual machines running Windows are converted for output to Red Hat Enterprise Virtualization, post-processing of the virtual machine image will be performed by the Red Hat Enterprise Virtualization Manager to install updated drivers. See 
          <a class="xref" href="#sect-V2V_Guide-Configuration_Changes-Configuration_Changes_for_Windows_Virtual_Machines">Section&nbsp;6.2.2, “Configuration Changes for Windows Virtual Machines”</a> for details of the process. This step will be omitted when virtual machines running Windows are converted for output to libvirt. 
         </div>
        </div>
       </div>
      </div>
      <div class="section" id="sect-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Preparing_to_convert_a_local_Xen_virtual_machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Preparing_to_convert_a_local_Xen_virtual_machine">2.1.1.3.&nbsp;Preparing to convert a local Xen virtual machine</h4>
         </div>
        </div>
       </div>
       <div class="para">
         The following is required when converting virtual machine on a host which used to run Xen, but has been updated to run KVM. It is not required when converting a Xen guest imported directly from a running libvirt/Xen instance. 
       </div>
       <div class="orderedlist">
        <ol>
         <li class="listitem">
          <div class="para">
            Obtain the XML for the virtual machine 
          </div>
          <div class="para"> 
           <code class="command">virt-v2v</code> uses a libvirt domain description to determine the current configuration of the virtual machine, including the location of its storage. Before starting the conversion, obtain this from the host running the virtual machine with the following command: 
           <pre class="screen">virsh dumpxml vm-name &gt; vm-name.xml</pre> This will require booting into a Xen kernel to obtain the XML, as libvirt needs to connect to a running Xen hypervisor to obtain its metadata. The conversion process is optimized for KVM, so obtaining domain data while running a Xen kernel, then performing the conversion using a KVM kernel will be more efficient than running the conversion on a Xen kernel. 
          </div></li>
        </ol>
       </div>
      </div>
     </div>
     <div class="section" id="sect-V2V_Guide-Converting_a_Virtual_Machine-Converting_Virtual_Machines">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-V2V_Guide-Converting_a_Virtual_Machine-Converting_Virtual_Machines">2.1.2.&nbsp;Converting Virtual Machines</h3>
        </div>
       </div>
      </div>
      <div class="para">
        Once you have prepared to convert the virtual machines, use 
       <code class="command">virt-v2v</code> to perform the actual conversions. This section provides the steps to convert the virtual machines, and command syntax for 
       <code class="command">virt-v2v</code>. Note that conversions are resource intensive processes, involving copying the whole disk image for a virtual machine. In typical environments, converting a single virtual machine takes approximately 5-10 minutes. 
      </div>
      <div class="section" id="sect-V2V_Guide-Converting_Virtual_Machines-virt_v2v">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-V2V_Guide-Converting_Virtual_Machines-virt_v2v">2.1.2.1.&nbsp;virt-v2v</h4>
         </div>
        </div>
       </div>
       <div class="para"> 
        <code class="command">virt-v2v</code> converts guests from a foreign hypervisor to run on KVM, managed by libvirt. The general command syntax for converting machines to run on KVM managed by libvirt is: 
       </div>
       <pre class="screen">virt-v2v -i libvirtxml -os pool --bridge brname vm-name.xml
virt-v2v -ic xen+ssh://root@vmhost.example.com -os pool --bridge brname vm-name
virt-v2v -ic esx://esx.example.com/?no_verify=1 -os pool --bridge brname vm-name</pre>
       <div class="para">
         A full specification of the parameters which can be used with 
        <code class="command">virt-v2v</code> is available in 
        <a class="xref" href="#References_Virtualization__virt-v2v_Parameters">Section&nbsp;6.1, “virt-v2v Parameters”</a>. 
       </div>
      </div>
      <div class="section" id="sect-V2V_Guide-Converting_Virtual_Machines-Converting_a_local_Xen_virtual_machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-V2V_Guide-Converting_Virtual_Machines-Converting_a_local_Xen_virtual_machine">2.1.2.2.&nbsp;Converting a local Xen virtual machine</h4>
         </div>
        </div>
       </div>
       <div class="para">
         Ensure that the virtual machine's XML is available locally, and that the storage referred to in the XML is available locally at the same paths. 
       </div>
       <div class="para">
         To convert the virtual machine from an XML file, run: 
       </div>
       <pre class="screen">virt-v2v -i libvirtxml -os pool --bridge brname vm-name.xml</pre>
       <div class="para">
         Where 
        <code class="literal">pool</code> is the local storage pool to hold the image, 
        <code class="literal">brname</code> is the name of a local network bridge to connect the converted virtual machine's network to, and 
        <code class="literal">vm-name.xml</code> is the path to the virtual machine's exported XML. You may also use the 
        <em class="parameter"><code>--network</code></em> parameter to connect to a locally managed network, or specify multiple mappings in 
        <code class="filename">/etc/virt-v2v.conf</code>. 
       </div>
       <div class="para">
         If your guest uses a Xen para-virtualized kernel (it would be called something like kernel-xen or kernel-xenU), 
        <code class="command">virt-v2v</code> will attempt to install a new kernel during the conversion process. You can avoid this requirement by installing a regular kernel, which won't reference a hypervisor in its name, alongside the Xen kernel prior to conversion. You should not make this newly installed kernel your default kernel, because Xen will not boot it. 
        <code class="command">virt-v2v</code> will make it the default during conversion. 
       </div>
      </div>
      <div class="section" id="sect-V2V_Guide-Converting_Virtual_Machines-Converting_a_remote_Xen_virtual_machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-V2V_Guide-Converting_Virtual_Machines-Converting_a_remote_Xen_virtual_machine">2.1.2.3.&nbsp;Converting a remote Xen virtual machine</h4>
         </div>
        </div>
       </div>
       <div class="important">
        <div class="admonition_header">
         <h2>Setup SSH Keys Prior to Converting a Remote VM with Multiple Disks</h2>
        </div>
        <div class="admonition">
         <div class="para">
           Because each disk transfer requires a new SSH session, it is recommended that SSH keys be set up prior to the conversion for authentication. This is especially important for large disks. Otherwise, a user will be required to manually enter SSH credentials for each disk being transferred. Failure to do so before the SSH negotiation times out will cause virt-v2v to fail. 
         </div>
        </div>
       </div>
       <div class="para">
         Xen virtual machines can be converted remotely via SSH. Ensure that the host running the virtual machine is accessible via SSH. 
       </div>
       <div class="para">
         To convert the virtual machine, run: 
       </div>
       <pre class="screen">virt-v2v -ic xen+ssh://root@vmhost.example.com -os pool --bridge brname vm-name</pre>
       <div class="para">
         Where 
        <code class="literal">vmhost.example.com</code> is the host running the virtual machine, 
        <code class="literal">pool</code> is the local storage pool to hold the image, 
        <code class="literal">brname</code> is the name of a local network bridge to connect the converted virtual machine's network to, and 
        <code class="literal">vm-name</code> is the domain of the Xen virtual machine. You may also use the 
        <em class="parameter"><code>--network</code></em> parameter to connect to a locally managed network, or specify multiple mappings in 
        <code class="filename">/etc/virt-v2v.conf</code>. You will be prompted to enter the password for the user specified in the connection string, which is 
        <code class="literal">root</code> in the example above 
       </div>
       <div class="para">
         If your guest uses a Xen para-virtualized kernel (it would be called something like kernel-xen or kernel-xenU), 
        <code class="command">virt-v2v</code> will attempt to install a new kernel during the conversion process. You can avoid this requirement by installing a regular kernel, which won't reference a hypervisor in its name, alongside the Xen kernel prior to conversion. You should not make this newly installed kernel your default kernel, because Xen will not boot it. 
        <code class="command">virt-v2v</code> will make it the default during conversion. 
       </div>
      </div>
      <div class="section" id="sect-V2V_Guide-Converting_Virtual_Machines-Converting_a_VMware_ESX_virtual_machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-V2V_Guide-Converting_Virtual_Machines-Converting_a_VMware_ESX_virtual_machine">2.1.2.4.&nbsp;Converting a VMware ESX virtual machine</h4>
         </div>
        </div>
       </div>
       <div class="important">
        <div class="admonition_header">
         <h2>Uninstall VMware Tools prior to conversion</h2>
        </div>
        <div class="admonition">
         <div class="para">
           When converting a Windows virtual machine from VMware ESX, ensure that VMware Tools is not installed on the virtual machine. The VMware Tools must be uninstalled prior to the conversion process. If a virtual machine is converted with the VMware Tools installed, it will not function correctly. 
         </div>
        </div>
       </div>
       <div class="para">
         Ensure that the virtual machine is stopped prior to running the v2v process. 
       </div>
       <div class="para">
         To convert the virtual machine, run: 
       </div>
       <pre class="screen">virt-v2v -ic esx://esx.example.com/ -os pool --bridge brname vm-name</pre>
       <div class="para">
         Where 
        <code class="literal">esx.example.com</code> is the VMware ESX server, 
        <code class="literal">pool</code> is the local storage pool to hold the image, 
        <code class="literal">brname</code> is the name of a local network bridge to connect the converted virtual machine's network to, and 
        <code class="literal">vm-name</code> is the name of the virtual machine. You may also use the 
        <em class="parameter"><code>--network</code></em> parameter to connect to a locally managed network, or specify multiple mappings in 
        <code class="filename">/etc/virt-v2v.conf</code>. The progress of the conversion process will be displayed in percent as it runs. 
       </div>
       <div class="formalpara" id="form-V2V_Guide-Converting_a_VMware_ESX_virtual_machine-Authenticating_to_the_ESX_server">
        <h5 class="formalpara">Authenticating to the ESX server</h5> Connecting to the ESX server will require authentication. 
        <code class="command">virt-v2v</code> supports password authentication when connecting to ESX. It reads passwords from $HOME/.netrc. The format of this file is described in the netrc(5) man page. An example entry is: 
        <pre class="screen">machine esx.example.com login root password s3cr3t</pre> 
        <div class="note">
         <div class="admonition_header">
          <h2>.netrc permissions</h2>
         </div>
         <div class="admonition">
          <div class="para">
            The 
           <code class="filename">.netrc</code> file must have a permission mask of 0600 to be read correctly by 
           <code class="command">virt-v2v</code> 
          </div>
         </div>
        </div> 
       </div>
       <div class="formalpara" id="form-V2V_Guide-Converting_a_VMware_ESX_virtual_machine-Connecting_to_an_ESX_server_with_an_invalid_certificate">
        <h5 class="formalpara">Connecting to an ESX server with an invalid certificate</h5> In non-production environments, the ESX server may have a non-valid certificate, for example a self-signed certificate. In this case, certificate checking can be explicitly disabled by adding '?no_verify=1' to the connection URI as shown below: 
        <pre class="screen">... -ic esx://esx.example.com/?no_verify=1 ...
</pre> 
       </div>
      </div>
     </div>
     <div class="section" id="sect-RHEL-Running_Converted_Virtual_Machines">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-RHEL-Running_Converted_Virtual_Machines">2.1.3.&nbsp;Running Converted Virtual Machines</h3>
        </div>
       </div>
      </div>
      <div class="para">
        On successful completion, 
       <code class="command">virt-v2v</code> will create a new libvirt domain for the converted virtual machine with the same name as the original virtual machine. It can be started as usual using libvirt tools, for example 
       <code class="command">virt-manager</code>. 
      </div>
      <div class="formalpara" id="form-V2V_Guide-Running_Converted_Virtual_Machines-Guest_network_configuration">
       <h5 class="formalpara">Guest network configuration</h5> 
       <code class="command">virt-v2v</code> cannot currently reconfigure a guest's network configuration. If the converted guest is not connected to the same subnet as the source, its network configuration may have to be updated. 
      </div>
     </div>
    </div>
   </div>
   <div xml:lang="en-US" class="chapter auditor-diff-mode-added" id="chap-V2V-VMS_To_Run_on_RHEV" lang="en-US">
    <div class="titlepage">
     <div>
      <div>
       <h2 class="title">Chapter&nbsp;3.&nbsp;Converting Virtual Machines to Run on Red Hat Enterprise Virtualization</h2>
      </div>
     </div>
    </div>
    <div class="toc">
     <dl>
      <dt>
       <span class="section"><a href="#Acceptable_Converted_Storage_Output_Formats">3.1. Acceptable Converted Storage Output Formats</a></span>
      </dt>
      <dt>
       <span class="section"><a href="#sect-Attaching_an_Export_Storage_Domain">3.2. Attaching an Export Storage Domain</a></span>
      </dt>
      <dt>
       <span class="section"><a href="#sect-RHEV_Converting_a_Virtual_Machine">3.3. Converting a Virtual Machine</a></span>
      </dt>
      <dd>
       <dl>
        <dt>
         <span class="section"><a href="#sect-Preparing_to_Convert_a_Virtual_Machine">3.3.1. Preparing to Convert a Virtual Machine</a></span>
        </dt>
        <dt>
         <span class="section"><a href="#sect-Converting_a_Virtual_Machine">3.3.2. Converting a Virtual Machine</a></span>
        </dt>
        <dt>
         <span class="section"><a href="#sect-RHEV-Importing_and_Running_the_Converted_Virtual_Machine">3.3.3. Importing and Running the Converted Virtual Machine</a></span>
        </dt>
        <dt>
         <span class="section"><a href="#sect-Scripting_the_v2v_Process">3.3.4. Scripting the v2v Process</a></span>
        </dt>
        <dt>
         <span class="section"><a href="#sect-Scripted_Bulk_v2v_Process">3.3.5. Scripted Bulk v2v Process</a></span>
        </dt>
       </dl>
      </dd>
     </dl>
    </div>
    <div class="para"> 
     <code class="command">virt-v2v</code> can convert virtual machines to run on Red Hat Enterprise Virtualization. Virtual machines can be converted from Xen, KVM and VMware ESX environments. Before converting virtual machines to run on Red Hat Enterprise Virtualization, you must attach an export storage domain to the Red Hat Enterprise Virtualization data center being used. 
     <a class="xref" href="#sect-Attaching_an_Export_Storage_Domain">Section&nbsp;3.2, “Attaching an Export Storage Domain”</a> explains the process of attaching an export storage domain. For more information on export storage domains, see the 
     <em class="citetitle">Red Hat Enterprise Virtualization Administration Guide</em>. 
    </div>
    <div class="section" id="Acceptable_Converted_Storage_Output_Formats">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="Acceptable_Converted_Storage_Output_Formats">3.1.&nbsp;Acceptable Converted Storage Output Formats</h2>
       </div>
      </div>
     </div>
     <div class="para">
       It is important to note that when converting a guest to run on Red Hat Enterprise Virtualization, not all combinations of storage format and allocation policy are supported. The supported combinations differ according to whether the Red Hat Enterprise Virtualization data center the guest will be imported into uses block (FC or iSCSI) or file (NFS) for its 
      <span class="emphasis"><em>data</em></span> storage domain. Note that virt-v2v writes to an 
      <span class="emphasis"><em>export</em></span> storage domain, and this is always required to be NFS. The important element for a successful VM import into Red Hat Enterprise Virtualization is the type of the 
      <span class="emphasis"><em>data</em></span> domain. virt-v2v is unable to detect the data center type, so this check must be applied manually by the user. 
     </div>
     <div class="para"> 
      <div class="table" id="tabl-Storage_for_Prealloc.">
       <h6>Table&nbsp;3.1.&nbsp;Allocation Policy: Preallocated.</h6>
       <div class="table-contents">
        <table summary="Allocation Policy: Preallocated." border="1">
         <colgroup>
          <col width="29%" class="datadomain" />
          <col width="14%" class="storageformat" />
          <col width="57%" class="supported" />
         </colgroup>
         <thead>
          <tr>
           <th> Data Domain Type </th>
           <th> Storage Format </th>
           <th> Supported </th>
          </tr>
         </thead>
         <tbody>
          <tr>
           <td> NFS </td>
           <td> raw </td>
           <td> Yes </td>
          </tr>
          <tr>
           <td> </td>
           <td> qcow2 </td>
           <td> No </td>
          </tr>
          <tr>
           <td> FC/iSCSI </td>
           <td> raw </td>
           <td> Yes </td>
          </tr>
          <tr>
           <td> </td>
           <td> qcow2 </td>
           <td> No </td>
          </tr>
         </tbody>
        </table>
       </div>
      </div>
      <br class="table-break" /> 
     </div>
     <div class="para"> 
      <div class="table" id="tabl-Storage_for_Sparse.">
       <h6>Table&nbsp;3.2.&nbsp;Allocation Policy: Sparse.</h6>
       <div class="table-contents">
        <table summary="Allocation Policy: Sparse." border="1">
         <colgroup>
          <col width="29%" class="datadomain" />
          <col width="14%" class="storageformat" />
          <col width="57%" class="supported" />
         </colgroup>
         <thead>
          <tr>
           <th> Data Domain Type </th>
           <th> Storage Format </th>
           <th> Supported </th>
          </tr>
         </thead>
         <tbody>
          <tr>
           <td> NFS </td>
           <td> raw </td>
           <td> Yes </td>
          </tr>
          <tr>
           <td> </td>
           <td> qcow2 </td>
           <td> Yes </td>
          </tr>
          <tr>
           <td> FC/iSCSI </td>
           <td> raw </td>
           <td> No </td>
          </tr>
          <tr>
           <td> </td>
           <td> qcow2 </td>
           <td> Yes </td>
          </tr>
         </tbody>
        </table>
       </div>
      </div>
      <br class="table-break" /> 
     </div>
     <div class="para">
       Data format and allocation policy of the virtual machine being converted by virt-v2v will be preserved unless the output data format and allocation policy are specified using the 
      <code class="command">-of</code> and 
      <code class="command">-oa</code> parameters respectively. To import virtual machines using sparse allocation into an FC or iSCSI data center, the storage format must be converted to qcow2. This is achieved by passing the parameters 
      <code class="command">-of qcow2 -oa sparse</code> to virt-v2v. Note that converting between raw and qcow2 formats is a resource intensive operation, and roughly doubles the length of time taken for the conversion process. 
      <div class="note">
       <div class="admonition_header">
        <h2>Note</h2>
       </div>
       <div class="admonition">
        <div class="para">
          Preallocated qcow2 storage is never supported in Red Hat Enterprise Virtualization, although virt-v2v is able to write it. Import to Red Hat Enterprise Virtualization will fail. 
        </div>
       </div>
      </div> 
     </div>
    </div>
    <div class="section" id="sect-Attaching_an_Export_Storage_Domain">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="sect-Attaching_an_Export_Storage_Domain">3.2.&nbsp;Attaching an Export Storage Domain</h2>
       </div>
      </div>
     </div>
     <div class="para">
       An export domain can be attached to a data center to enable the import or export of virtual machines from one data center to another. An export domain can also be used to backup virtual machines and templates. 
     </div>
     <div class="note">
      <div class="admonition_header">
       <h2>Note</h2>
      </div>
      <div class="admonition">
       <div class="para">
         At a given time, an export data domain can only be attached to a single data center. 
       </div>
      </div>
     </div>
     <div class="orderedlist" id="orde-attach_an_export_storage_domain">
      <h6>To attach an export storage domain:</h6>
      <ol>
       <li class="listitem">
        <div class="para">
          Login to the Red Hat Enterprise Virtualization administration portal. Click the 
         <span class="guilabel"><strong>Data Centers</strong></span> tab. 
        </div>
        <div class="para">
          Select the data center to which the export storage domain is to be attached. 
        </div></li>
       <li class="listitem">
        <div class="para">
          The Details pane displays. Select the 
         <span class="guilabel"><strong>Storage</strong></span> tab. 
        </div>
        <div class="figure" id="figu-Attaching_an_Export_Domain">
         <div class="figure-contents">
          <div class="mediaobject">
           <img src="images/storage-tab-data-center.png" width="444" alt="Attaching an Export Domain" />
          </div>
         </div>
         <h6>Figure&nbsp;3.1.&nbsp;Attaching an Export Domain</h6>
        </div><br class="figure-break" /></li>
       <li class="listitem">
        <div class="para">
          Click the 
         <span class="guibutton"><strong>Attach Export</strong></span> button to add the storage location where the images are stored. 
        </div></li>
       <li class="listitem">
        <div class="para">
          The 
         <span class="guilabel"><strong>Attach Export Domain</strong></span> dialog box displays, if there are export domains available. 
        </div>
        <div class="figure" id="figu-Attach_Export_Domain_Dialog">
         <div class="figure-contents">
          <div class="mediaobject">
           <img src="images/storage-export-domain.png" width="444" alt="Attach Export Domain Dialog" />
          </div>
         </div>
         <h6>Figure&nbsp;3.2.&nbsp;Attach Export Domain Dialog</h6>
        </div><br class="figure-break" /></li>
       <li class="listitem">
        <div class="para">
          Select the export domain from the list. 
        </div></li>
       <li class="listitem">
        <div class="para">
          Click the 
         <span class="guibutton"><strong>OK</strong></span> button. The new export storage domain displays on the Storage tab of the Details pane, with a status of 
         <span class="emphasis"><em>Locked</em></span>, followed by 
         <span class="emphasis"><em>Inactive</em></span>. 
        </div>
        <div class="figure" id="figu-The_Inactive_Export_Domain">
         <div class="figure-contents">
          <div class="mediaobject">
           <img src="images/storage-export-domain-1.png" width="444" alt="The Inactive Export Domain" />
          </div>
         </div>
         <h6>Figure&nbsp;3.3.&nbsp;The Inactive Export Domain</h6>
        </div><br class="figure-break" /></li>
       <li class="listitem">
        <div class="para">
          Select the new export storage domain on the Storage tab of the Details pane, and click the 
         <span class="guilabel"><strong>Activate</strong></span> button. 
        </div></li>
       <li class="listitem">
        <div class="para">
          The export domain will be activated in a few moments and display an 
         <span class="emphasis"><em>Active</em></span> status. 
        </div>
        <div class="figure" id="figu-Activated_Export_Domain">
         <div class="figure-contents">
          <div class="mediaobject">
           <img src="images/storage-export-domain-active.png" width="444" alt="Activated Export Domain" />
          </div>
         </div>
         <h6>Figure&nbsp;3.4.&nbsp;Activated Export Domain</h6>
        </div><br class="figure-break" /></li>
      </ol>
     </div>
    </div>
    <div class="section" id="sect-RHEV_Converting_a_Virtual_Machine">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="sect-RHEV_Converting_a_Virtual_Machine">3.3.&nbsp;Converting a Virtual Machine</h2>
       </div>
      </div>
     </div>
     <div class="para"> 
      <code class="command">virt-v2v</code> converts virtual machines from a foreign hypervisor to run on Red Hat Enterprise Virtualization. It automatically packages the virtual machine images and metadata, then uploads them to a Red Hat Enterprise Virtualization export storage domain. For more information on export storage domains, see 
      <a class="xref" href="#sect-Attaching_an_Export_Storage_Domain">Section&nbsp;3.2, “Attaching an Export Storage Domain”</a>. 
      <code class="command">virt-v2v</code> always makes a copy of storage before conversion. 
     </div>
     <div class="para"> 
      <div class="figure" id="figu-Converting_a_virtual_machine">
       <div class="figure-contents">
        <div class="mediaobject">
         <img src="images/regular-v2v-process.png" alt="Converting a virtual machine" />
        </div>
       </div>
       <h6>Figure&nbsp;3.5.&nbsp;Converting a virtual machine</h6>
      </div>
      <br class="figure-break" /> 
     </div>
     <div class="para">
       From the export storage domain, the virtual machine images can be imported into Red Hat Enterprise Virtualization using the administration portal. 
     </div>
     <div class="para"> 
      <div class="figure" id="figu-Importing_a_virtual_machine">
       <div class="figure-contents">
        <div class="mediaobject">
         <img src="images/export-v2v-process.png" alt="Importing a virtual machine" />
        </div>
       </div>
       <h6>Figure&nbsp;3.6.&nbsp;Importing a virtual machine</h6>
      </div>
      <br class="figure-break" /> 
     </div>
     <div class="section" id="sect-Preparing_to_Convert_a_Virtual_Machine">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-Preparing_to_Convert_a_Virtual_Machine">3.3.1.&nbsp;Preparing to Convert a Virtual Machine</h3>
        </div>
       </div>
      </div>
      <div class="para">
        Before a virtual machine can be converted, ensure that the following steps are completed. 
      </div>
      <div class="orderedlist">
       <ol>
        <li class="listitem">
         <div class="para">
           Create an NFS export domain. 
          <code class="command">virt-v2v</code> can transfer the converted VM directly to an NFS export storage domain. From the export storage domain, the VM can be imported into a Red Hat Enterprise Virtualization Data Center. The storage domain must be mountable by the machine running 
          <code class="command">virt-v2v</code>. When exporting to a Red Hat Enterprise Virtualization export domain, 
          <code class="command">virt-v2v</code> must run as root. 
         </div>
         <div class="note">
          <div class="admonition_header">
           <h2>Configure rpcbind and nfslock on NFSv2 and NFSv3 clients</h2>
          </div>
          <div class="admonition">
           <div class="para">
             The export storage domain is accessed as an NFS share. By default, Red Hat Enterprise Linux 6 uses NFSv4, which does not require further configuration. However, for NFSv2 and NFSv3 clients, the 
            <code class="command">rpcbind</code> and 
            <code class="command">nfslock</code> services must be running on the host used to run 
            <code class="command">virt-v2v</code>. The network must also be configured to allow NFS access to the storage server. For more details refer to the 
            <em class="citetitle">Red Hat Enterprise Linux Storage Administration Guide</em>. 
           </div>
          </div>
         </div></li>
        <li class="listitem">
         <div class="para">
           Specify network mappings in 
          <code class="filename">virt-v2v.conf</code>. This step is 
          <span class="emphasis"><em>optional</em></span>, and is not required for most use cases. 
         </div>
         <div class="para">
           If your virtual machine has multiple network interfaces, 
          <code class="filename">/etc/virt-v2v.conf</code> must be edited to specify the network mapping for all interfaces. You can specify an alternative 
          <code class="filename">virt-v2v.conf</code> file with the 
          <em class="parameter"><code>-f</code></em> parameter. If you are converting a virtual machine for output to both libvirt and Red Hat Enterprise Virtualization, separate 
          <code class="filename">virt-v2v.conf</code> files should be used for each conversion. This is because the destination network bridge corresponding to the same source network bridge is usually different for libvirt and Red Hat Enterprise Virtualization output. 
         </div>
         <div class="para">
           If your virtual machine only has a single network interface, it is simpler to use the 
          <em class="parameter"><code>--network</code></em> or 
          <em class="parameter"><code>--bridge</code></em> parameters, rather than modifying 
          <code class="filename">virt-v2v.conf</code>. 
         </div></li>
        <li class="listitem">
         <div class="para">
           Create a profile for the conversion in 
          <code class="filename">virt-v2v.conf</code>. This step is 
          <span class="emphasis"><em>optional</em></span>. Profiles specify a conversion method, storage location, output format and allocation policy. When a profile is defined, it can be called using 
          <em class="parameter"><code>--profile</code></em> rather than individually providing the 
          <em class="parameter"><code>-o</code></em>, 
          <em class="parameter"><code>-os</code></em>, 
          <em class="parameter"><code>-of</code></em> and 
          <em class="parameter"><code>-oa</code></em> parameters. See 
          <span class="citerefentry"><span class="refentrytitle">virt-v2v.conf</span>(5)</span> for details. 
         </div></li>
       </ol>
      </div>
      <div class="section" id="sect-Preparing_to_convert_a_virtual_machine_running_Linux">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-Preparing_to_convert_a_virtual_machine_running_Linux">3.3.1.1.&nbsp;Preparing to convert a virtual machine running Linux</h4>
         </div>
        </div>
       </div>
       <div class="para">
         The following is required when converting virtual machines which run Linux, regardless of which hypervisor they are being converted from. 
       </div>
       <div class="orderedlist">
        <ol>
         <li class="listitem">
          <div class="para">
            Obtain the software 
          </div>
          <div class="para">
            As part of the conversion process, 
           <code class="command">virt-v2v</code> may install a new kernel and drivers on the virtual machine. If the virtual machine being converted is registered to Red Hat Network (RHN), the required packages will be automatically downloaded. If the virtual machine is not registered to RHN, the 
           <code class="filename">virt-v2v.db</code> file ships with a list of RPMs used for this purpose. The RPMs relevant to your virtual machine must be downloaded manually from RHN and made available on the host running 
           <code class="command">virt-v2v</code>. The RPMs should be saved in the directory specified by the 
           <em class="parameter"><code>path-root</code></em> configuration element, which by default is 
           <code class="filename">/var/lib/virt-v2v/software/</code>. 
           <code class="command">virt-v2v</code> will display an error similar to 
           <a class="xref" href="#exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Linux-Missing_Package_error">Example&nbsp;2.1, “Missing Package error”</a> if software it depends upon for a particular conversion is not available. 
          </div>
          <div class="example" id="exam-Linux-Missing_Package_error">
           <h6>Example&nbsp;3.1.&nbsp;Missing Package error</h6>
           <div class="example-contents">
            <pre class="screen">virt-v2v: Installation failed because the following files referenced in the configuration file are required, but missing:
rhel/6/kernel-2.6.32-128.el6.x86_64.rpm
rhel/6/ecryptfs-utils-82-6.el6.x86_64.rpm
rhel/6/ecryptfs-utils-82-6.el6.i686.rpm</pre>
           </div>
          </div><br class="example-break" />
          <div class="para">
            To obtain the relevant RPMs for your environment, repeat these steps for each missing package: 
          </div>
          <div class="procedure">
           <ol class="1">
            <li class="step">
             <div class="para">
               Login to 
              <a href="https://rhn.redhat.com/rhn/software/channels/All.do">Red Hat Network</a> 
             </div></li>
            <li class="step">
             <div class="para">
               Select the 
              <span class="guilabel"><strong>Package Search</strong></span> tab. 
             </div></li>
            <li class="step">
             <div class="para">
               In the 
              <span class="guilabel"><strong>Search For</strong></span> field, type the package name exactly matching the one shown in the error message. For the example shown in 
              <a class="xref" href="#exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Linux-Missing_Package_error">Example&nbsp;2.1, “Missing Package error”</a>, the first package is 
              <span class="guilabel"><strong>kernel-2.6.32-128.el6.x86_64</strong></span> 
             </div></li>
            <li class="step">
             <div class="para">
               In the 
              <span class="guilabel"><strong>Where to search</strong></span> field, select 
              <span class="guilabel"><strong>In the following architectures</strong></span> and tick the 
              <span class="guilabel"><strong>x86_64</strong></span> checkbox. Click 
              <span class="guilabel"><strong>Search</strong></span>. 
             </div></li>
            <li class="step">
             <div class="para">
               A list of packages displays. Click the package name identical to the one in the error message. 
             </div></li>
            <li class="step">
             <div class="para">
               You will be directed to the Details page, containing detailed descriptions of the package. Select 
              <span class="guilabel"><strong>Download Package</strong></span> at the bottom of the page 
             </div></li>
            <li class="step">
             <div class="para">
               Save the downloaded package to the appropriate directory in 
              <code class="filename">/var/lib/virt-v2v/software</code>. For Red Hat Enterprise Linux 6, the directory is 
              <code class="filename">/var/lib/virt-v2v/software/rhel/6</code> 
             </div></li>
           </ol>
          </div></li>
        </ol>
       </div>
      </div>
      <div class="section" id="sect-Preparing_to_convert_a_virtual_machine_running_Windows">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-Preparing_to_convert_a_virtual_machine_running_Windows">3.3.1.2.&nbsp;Preparing to convert a virtual machine running Windows</h4>
         </div>
        </div>
       </div>
       <div class="important">
        <div class="admonition_header">
         <h2>Windows Recovery Console</h2>
        </div>
        <div class="admonition">
         <div class="para">
           virt-v2v does not support conversion of the Windows Recovery Console. If a guest has a recovery console installed and VirtIO was enabled during conversion, attempting to boot the recovery console will result in a stop error. 
         </div>
         <div class="para">
           Windows XP x86 does not support the Windows Recovery Console on VirtIO systems, so there is no resolution to this. However, on Windows XP AMD64 and Windows 2003 (x86 and AMD64), the recovery console can be re-installed after conversion. The re-installation procedure is the same as the initial installation procedure. It is not necessary to remove the recovery console first. Following re-installation, the recovery console will work as intended. 
         </div>
        </div>
       </div>
       <div class="important">
        <div class="admonition_header">
         <h2>Converting a Windows virtual machine with multiple drives</h2>
        </div>
        <div class="admonition">
         <div class="para">
           When converting a virtual machine running Windows with multiple drives, for output to Red Hat Enterprise Virtualization, it is possible in certain circumstances that additional drives will not be displayed by default. Red Hat Enterprise Virtualization will always add a CD-ROM device to a converted virtual machine. If the virtual machine did not have a CD-ROM device before conversion, the new CD-ROM device may be assigned a drive letter which clashes with an existing drive on the virtual machine. This will render the existing device inaccessible. The occluded disk device can still be accessed by manually assigning it a new drive letter. It is also possible to maintain previous drive letter assignment by manually changing the drive letter assigned to the new CD-ROM device, then rebooting the virtual machine. 
         </div>
        </div>
       </div>
       <div class="para">
         The following is required when converting virtual machines running Windows, regardless of which hypervisor they are being converted from. The conversion procedure depends on post-processing by the Red Hat Enterprise Virtualization Manager for completion. See 
        <a class="xref" href="#sect-V2V_Guide-Configuration_Changes-Configuration_Changes_for_Windows_Virtual_Machines">Section&nbsp;6.2.2, “Configuration Changes for Windows Virtual Machines”</a> for details of the process. 
       </div>
       <div class="orderedlist">
        <ol>
         <li class="listitem">
          <div class="para">
            Install the 
           <span class="package">libguestfs-winsupport</span> package on the host running 
           <code class="command">virt-v2v</code>. This package provides support for NTFS, which is used by many Windows systems. The 
           <span class="package">libguestfs-winsupport</span> package is provided by the 
           <span class="guilabel"><strong>RHEL V2VWIN (v. 6 for 64-bit x86_64)</strong></span> channel. Ensure your system is subscribed to this channel, then run the following command as root: 
          </div><pre class="screen"><code class="command">yum install libguestfs-winsupport</code></pre>
          <div class="para">
            If you attempt to convert a virtual machine using NTFS without the 
           <span class="package">libguestfs-winsupport</span> package installed, the conversion will fail. An error message similar to 
           <a class="xref" href="#exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Windows-Error_message_when_converting_a_Windows_virtual_machine_without_libguestfs_winsupport_installed">Example&nbsp;2.2, “Error message when converting a Windows virtual machine without libguestfs-winsupport installed”</a> will be shown. 
          </div>
          <div class="example" id="exam-Error_message_when_converting_a_Windows_virtual_machine_without_libguestfs_winsupport_installed">
           <h6>Example&nbsp;3.2.&nbsp;Error message when converting a Windows virtual machine without libguestfs-winsupport installed</h6>
           <div class="example-contents">
            <pre class="screen">No operating system could be detected inside this disk image.

This may be because the file is not a disk image, or is not a virtual machine
image, or because the OS type is not understood by virt-inspector.

If you feel this is an error, please file a bug report including as much
information about the disk image as possible.</pre>
           </div>
          </div><br class="example-break" /></li>
         <li class="listitem">
          <div class="para">
            Install the 
           <span class="package">virtio-win</span> package on the host running 
           <code class="command">virt-v2v</code>. This package provides para-virtualized block and network drivers for Windows guests. The 
           <span class="package">virtio-win</span> package is provided by the 
           <span class="guilabel"><strong>RHEL Server Supplementary (v. 6 64-bit x86_64)</strong></span> channel. Ensure your system is subscribed to this channel, then run the following command as root: 
          </div><pre class="screen"><code class="command">yum install virtio-win</code></pre>
          <div class="para">
            If you attempt to convert a virtual machine running Windows without the 
           <span class="package">virtio-win</span> package installed, the conversion will fail. An error message similar to 
           <a class="xref" href="#exam-V2V_Guide-Preparing_to_convert_a_virtual_machine_running_Windows-Error_message_when_converting_a_Windows_virtual_machine_without_virtio_win_installed">Example&nbsp;2.3, “Error message when converting a Windows virtual machine without virtio-win installed”</a> will be shown. 
          </div>
          <div class="example" id="exam-Error_message_when_converting_a_Windows_virtual_machine_without_virtio_win_installed">
           <h6>Example&nbsp;3.3.&nbsp;Error message when converting a Windows virtual machine without virtio-win installed</h6>
           <div class="example-contents">
            <pre class="screen">virt-v2v: Installation failed because the following files referenced in the configuration file are required, but missing: /usr/share/virtio-win/drivers/i386/Win2008</pre>
           </div>
          </div><br class="example-break" /></li>
         <li class="listitem">
          <div class="para">
            Upload the Guest Tools ISO to the Red Hat Enterprise Virtualization Manager 
          </div>
          <div class="para">
            Note that the Guest Tools ISO is not required for the conversion process to succeed. However, it is recommended for all virtual machines running on Red Hat Enterprise Virtualization. The Manager installs drivers on the guest using the Guest Tools ISO after the virtual machines have been converted. See 
           <a class="xref" href="#sect-V2V_Guide-Configuration_Changes-Configuration_Changes_for_Windows_Virtual_Machines">Section&nbsp;6.2.2, “Configuration Changes for Windows Virtual Machines”</a> for details. 
          </div>
          <div class="para">
            The Guest Tools ISO is obtained as follows: 
          </div>
          <div class="procedure">
           <ol class="1">
            <li class="step">
             <div class="para">
               From the Manager, login to 
              <a href="https://rhn.redhat.com/rhn/software/channels/All.do">Red Hat Network</a>. 
             </div></li>
            <li class="step">
             <div class="para">
               Click on the 
              <span class="guilabel"><strong>Download Software</strong></span> tab. 
             </div></li>
            <li class="step">
             <div class="para">
               Select the 
              <span class="guilabel"><strong>Red Hat Enterprise Virtualization (x86-64)</strong></span> channel. 
             </div></li>
            <li class="step">
             <div class="para">
               Select the 
              <span class="guilabel"><strong>Red Hat Enterprise Virt Manager for Desktops (v.2 x86)</strong></span> or 
              <span class="guilabel"><strong>Red Hat Enterprise Virt Manager for Servers (v.2 x86)</strong></span> channel, as appropriate for your subscription. 
             </div></li>
            <li class="step">
             <div class="para">
               Download 
              <span class="guilabel"><strong>Guest Tools ISO for 2.2</strong></span> and save it locally. 
             </div></li>
            <li class="step">
             <div class="para">
               Upload the Guest Tools ISO using the ISO Uploader. See the 
              <em class="citetitle">Red Hat Enterprise Virtualization Administration Guide</em> for instructions. 
             </div></li>
           </ol>
          </div></li>
        </ol>
       </div>
      </div>
      <div class="section" id="sect-Preparing_to_convert_a_local_Xen_virtual_machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-Preparing_to_convert_a_local_Xen_virtual_machine">3.3.1.3.&nbsp;Preparing to convert a local Xen virtual machine</h4>
         </div>
        </div>
       </div>
       <div class="para">
         The following is required when converting virtual machines on a host which used to run Xen, but has been updated to run KVM. It is not required when converting a Xen virtual machine imported directly from a running libvirt/Xen instance. 
       </div>
       <div class="orderedlist">
        <ol>
         <li class="listitem">
          <div class="para">
            Obtain the XML for the virtual machine 
          </div>
          <div class="para">
            virt-v2v uses a libvirt domain description to determine the current configuration of the virtual machine, including the location of its storage. Before starting the conversion, obtain this from the host running the virtual machine with the following command: 
           <pre class="screen">virsh dumpxml vm-name &gt; vm-name.xml</pre> This will require booting into a Xen kernel to obtain the XML, as libvirt needs to connect to a running Xen hypervisor to obtain its metadata. The conversion process is optimized for KVM, so obtaining domain data while running a Xen kernel, then performing the conversion using a KVM kernel will be more efficient than running the conversion on a Xen kernel. 
          </div></li>
        </ol>
       </div>
      </div>
     </div>
     <div class="section" id="sect-Converting_a_Virtual_Machine">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-Converting_a_Virtual_Machine">3.3.2.&nbsp;Converting a Virtual Machine</h3>
        </div>
       </div>
      </div>
      <div class="para">
        Once you have prepared to convert the virtual machines, use 
       <code class="command">virt-v2v</code> to perform the actual conversions. This section provides the steps to convert the virtual machines, and command syntax for 
       <code class="command">virt-v2v</code>. Note that conversions are resource intensive processes, involving copying the whole disk image for a virtual machine over the network. In typical environments, converting a single virtual machine takes approximately 5-10 minutes. 
      </div>
      <div class="section" id="sect-virt_v2v">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-virt_v2v">3.3.2.1.&nbsp;virt-v2v</h4>
         </div>
        </div>
       </div>
       <div class="para"> 
        <code class="command">virt-v2v</code> converts virtual machines from a foreign hypervisor to run on Red Hat Enterprise Virtualization. The general command syntax for converting machines to run on Red Hat Enterprise Virtualization is: 
       </div>
       <pre class="screen">virt-v2v -i libvirtxml -o rhev -os storage.example.com:/exportdomain --network rhevm vm-name.xml
virt-v2v -o rhev -os storage.example.com:/exportdomain --network rhevm vm-name
virt-v2v -ic esx://esx.example.com/?no_verify=1 -o rhev -os storage.example.com:/exportdomain --network rhevm vm-name
</pre>
       <div class="para">
         A full specification of the parameters which can be used with 
        <code class="command">virt-v2v</code> is available in 
        <a class="xref" href="#References_Virtualization__virt-v2v_Parameters">Section&nbsp;6.1, “virt-v2v Parameters”</a>. 
       </div>
      </div>
      <div class="section" id="sect-V2V_Guide-Converting_a_Virtual_Machine-Converting_a_local_Xen_Virtual_Machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-V2V_Guide-Converting_a_Virtual_Machine-Converting_a_local_Xen_Virtual_Machine">3.3.2.2.&nbsp;Converting a local Xen Virtual Machine</h4>
         </div>
        </div>
       </div>
       <div class="para">
         Ensure that the virtual machine's XML is available locally, and that the storage referred to in the XML is available locally at the same paths. 
       </div>
       <div class="para">
         To convert the virtual machine from an XML file, run: 
       </div>
       <pre class="screen">virt-v2v -i libvirtxml -o rhev -os storage.example.com:/exportdomain --network rhevm vm-name.xml</pre>
       <div class="para">
         Where 
        <code class="literal">storage.example.com:/exportdomain</code> is the export storage domain, 
        <code class="literal">rhevm</code> is the locally managed network to connect the converted virtual machine's network to, and 
        <code class="literal">vm-name.xml</code> is the path to the virtual machine's exported xml. You may also use the 
        <em class="parameter"><code>--bridge</code></em> parameter to connect to a local network bridge, or specify multiple mappings in 
        <code class="filename">/etc/virt-v2v.conf</code>. 
       </div>
       <div class="para">
         To convert the virtual machine from a running Xen hypervisor, run: 
       </div>
       <pre class="screen">virt-v2v -ic xen:/// -o rhev -os storage.example.com:/exportdomain --network rhevm vm-name</pre>
       <div class="para">
         Where 
        <code class="literal">storage.example.com:/exportdomain</code> is the export storage domain, 
        <code class="literal">rhevm</code> is the locally managed network to connect the converted virtual machine's network to, and 
        <code class="literal">vm-name</code> is the domain of the Xen virtual machine. You may also use the 
        <em class="parameter"><code>--bridge</code></em> parameter to connect to a local network bridge, or specify multiple mappings in 
        <code class="filename">/etc/virt-v2v.conf</code>. 
       </div>
       <div class="para">
         If your guest uses a Xen para-virtualized kernel (it would be called something like kernel-xen or kernel-xenU), 
        <code class="command">virt-v2v</code> will attempt to install a new kernel during the conversion process. You can avoid this requirement by installing a regular kernel, which won't reference a hypervisor in its name, alongside the Xen kernel prior to conversion. You should not make this newly installed kernel your default kernel, because Xen will not boot it. 
        <code class="command">virt-v2v</code> will make it the default during conversion. 
       </div>
      </div>
      <div class="section" id="sect-Converting_a_remote_Xen_Virtual_Machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-Converting_a_remote_Xen_Virtual_Machine">3.3.2.3.&nbsp;Converting a remote Xen Virtual Machine</h4>
         </div>
        </div>
       </div>
       <div class="important">
        <div class="admonition_header">
         <h2>Setup SSH Keys Prior to Converting a Remote VM with Multiple Disks</h2>
        </div>
        <div class="admonition">
         <div class="para">
           Because each disk transfer requires a new SSH session, it is recommended that SSH keys be set up prior to the conversion for authentication. This is especially important for large disks. Otherwise, a user will be required to manually enter SSH credentials for each disk being transferred. Failure to do so before the SSH negotiation times out will cause virt-v2v to fail. 
         </div>
        </div>
       </div>
       <div class="para">
         Xen virtual machines can be converted remotely via SSH. Ensure that the host running the virtual machine is accessible via SSH. 
       </div>
       <div class="para">
         To convert the virtual machine, run: 
       </div>
       <pre class="screen">virt-v2v -o rhev -ic xen+ssh://root@vmhost.example.com -os storage.example.com:/exportdomain --network rhevm vm-name</pre>
       <div class="para">
         Where 
        <code class="literal">vmhost.example.com</code> is the host running the virtual machine, 
        <code class="literal">storage.example.com:/exportdomain</code> is the export storage domain, 
        <code class="literal">rhevm</code> is the locally managed network to connect the converted virtual machine's network to, and 
        <code class="literal">vm-name</code> is the domain of the Xen virtual machine. You may also use the 
        <em class="parameter"><code>--bridge</code></em> parameter to connect to a local network bridge, or specify multiple mappings in 
        <code class="filename">/etc/virt-v2v.conf</code>. 
       </div>
       <div class="para">
         If your guest uses a Xen para-virtualized kernel (it would be called something like kernel-xen or kernel-xenU), 
        <code class="command">virt-v2v</code> will attempt to install a new kernel during the conversion process. You can avoid this requirement by installing a regular kernel, which won't reference a hypervisor in its name, alongside the Xen kernel prior to conversion. You should not make this newly installed kernel your default kernel, because Xen will not boot it. 
        <code class="command">virt-v2v</code> will make it the default during conversion. 
       </div>
      </div>
      <div class="section" id="sect-Converting_a_local_KVM_Virtual_Machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-Converting_a_local_KVM_Virtual_Machine">3.3.2.4.&nbsp;Converting a local KVM Virtual Machine</h4>
         </div>
        </div>
       </div>
       <div class="para">
         Ensure that the virtual machine is stopped prior to running the v2v process. 
       </div>
       <div class="para">
         To convert the virtual machine, run: 
       </div>
       <pre class="screen">virt-v2v -o rhev -os storage.example.com:/exportdomain --network rhevm vm-name</pre>
       <div class="para">
         Where 
        <code class="literal">storage.example.com:/exportdomain</code> is the export storage domain, 
        <code class="literal">rhevm</code> is the locally managed network to connect the converted virtual machine's network to, and 
        <code class="literal">vm-name</code> is the domain of the KVM virtual machine. You may also use the 
        <em class="parameter"><code>--bridge</code></em> parameter to connect to a local network bridge, or specify multiple mappings in 
        <code class="filename">/etc/virt-v2v.conf</code>. 
       </div>
      </div>
      <div class="section" id="sect-Converting_a_remote_KVM_Virtual_Machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-Converting_a_remote_KVM_Virtual_Machine">3.3.2.5.&nbsp;Converting a remote KVM Virtual Machine</h4>
         </div>
        </div>
       </div>
       <div class="important">
        <div class="admonition_header">
         <h2>Setup SSH Keys Prior to Converting a Remote VM with Multiple Disks</h2>
        </div>
        <div class="admonition">
         <div class="para">
           Because each disk transfer requires a new SSH session, it is recommended that SSH keys be set up prior to the conversion for authentication. This is especially important for large disks. Otherwise, a user will be required to manually enter SSH credentials for each disk being transferred. Failure to do so before the SSH negotiation times out will cause virt-v2v to fail. 
         </div>
        </div>
       </div>
       <div class="para">
         KVM virtual machines can be converted remotely via SSH. Ensure that the host running the virtual machine is accessible via SSH, and that the virtual machine is stopped prior to running the v2v process. 
       </div>
       <div class="para">
         To convert the virtual machine, run: 
       </div>
       <pre class="screen">virt-v2v -ic qemu+ssh://root@kvmhost.example.com/system -o rhev -os storage.example.com:/exportdomain --network rhevm vm-name</pre>
       <div class="para">
         Where 
        <code class="literal">kvmhost.example.com</code> is the host running the virtual machine, 
        <code class="literal">storage.example.com:/exportdomain</code> is the export storage domain, 
        <code class="literal">rhevm</code> is the locally managed network to connect the converted virtual machine's network to, and 
        <code class="literal">vm-name</code> is the domain of the KVM virtual machine. You may also use the 
        <em class="parameter"><code>--bridge</code></em> parameter to connect to a local network bridge, or specify multiple mappings in 
        <code class="filename">/etc/virt-v2v.conf</code>. 
       </div>
      </div>
      <div class="section" id="sect-Converting_a_VMware_ESX_Virtual_Machine">
       <div class="titlepage">
        <div>
         <div>
          <h4 class="title" id="sect-Converting_a_VMware_ESX_Virtual_Machine">3.3.2.6.&nbsp;Converting a VMware ESX Virtual Machine</h4>
         </div>
        </div>
       </div>
       <div class="important">
        <div class="admonition_header">
         <h2>Uninstall VMware Tools prior to conversion</h2>
        </div>
        <div class="admonition">
         <div class="para">
           When converting a Windows virtual machine from VMware ESX, ensure that VMware Tools is not installed on the virtual machine. The VMware Tools must be uninstalled prior to the conversion process. If a virtual machine is converted with the VMware Tools installed, it will not function correctly. 
         </div>
        </div>
       </div>
       <div class="para">
         Ensure that the virtual machine is stopped prior to running the v2v process. 
       </div>
       <div class="para">
         To convert the virtual machine, run: 
       </div>
       <pre class="screen">virt-v2v -ic esx://esx.example.com/ -o rhev -os storage.example.com:/exportdomain --network rhevm vm-name</pre>
       <div class="para">
         Where 
        <code class="literal">storage.example.com:/exportdomain</code> is the export storage domain, 
        <code class="literal">rhevm</code> is the locally managed network to connect the converted virtual machine's network to, and 
        <code class="literal">vm-name</code> is the name of the virtual machine. You may also use the 
        <em class="parameter"><code>--bridge</code></em> parameter to connect to a local network bridge, or specify multiple mappings in 
        <code class="filename">/etc/virt-v2v.conf</code>. 
       </div>
       <div class="formalpara" id="form-Authenticating_to_the_ESX_server">
        <h5 class="formalpara">Authenticating to the ESX server</h5> Connecting to the ESX server will require authentication. 
        <code class="command">virt-v2v</code> supports password authentication when connecting to ESX. It reads passwords from $HOME/.netrc. The format of this file is described in netrc(5). An example entry is: 
        <pre class="screen">
machine esx.example.com login root password s3cr3t
</pre> 
        <div class="note">
         <div class="admonition_header">
          <h2>.netrc permissions</h2>
         </div>
         <div class="admonition">
          <div class="para">
            The 
           <code class="filename">.netrc</code> file must have a permission mask of 0600 to be read correctly by 
           <code class="command">virt-v2v</code> 
          </div>
         </div>
        </div> 
       </div>
       <div class="formalpara" id="form-Connecting_to_an_ESX_server_with_an_invalid_certificate">
        <h5 class="formalpara">Connecting to an ESX server with an invalid certificate</h5> In non-production environments, the ESX server may have a non-valid certificate, for example a self-signed certificate. In this case, certificate checking can be explicitly disabled by adding '?no_verify=1' to the connection URI as shown below: 
        <pre class="screen">... -ic esx://esx.example.com/?no_verify=1 ...</pre> 
       </div>
      </div>
     </div>
     <div class="section" id="sect-RHEV-Importing_and_Running_the_Converted_Virtual_Machine">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-RHEV-Importing_and_Running_the_Converted_Virtual_Machine">3.3.3.&nbsp;Importing and Running the Converted Virtual Machine</h3>
        </div>
       </div>
      </div>
      <div class="para">
        On successful completion, 
       <code class="command">virt-v2v</code> will upload the exported virtual machine to the specified export domain. To import and run the converted virtual machine: 
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           In the Red Hat Enterprise Virtualization administration portal, select the export domain from the 
          <span class="guilabel"><strong>Storage</strong></span> tab. 
         </div></li>
        <li class="step">
         <div class="para">
           Open the 
          <span class="guilabel"><strong>VM Import</strong></span> tab, select the appropriate virtual machine and click 
          <span class="guilabel"><strong>Import</strong></span>. 
         </div></li>
        <li class="step">
         <div class="para">
           The 
          <span class="guilabel"><strong>Import Virtual Machine(s)</strong></span> dialog will display. Select the appropriate Destination Cluster and Destination Storage, then click 
          <span class="guilabel"><strong>OK</strong></span>. The import process will run in the background and may take several minutes. While it is running, the imported virtual machine will appear in the 
          <span class="guilabel"><strong>Virtual Machines</strong></span> tab with a status of 
          <code class="literal">Image Locked</code>. You can monitor the status of the import operation from the 
          <span class="guilabel"><strong>Events</strong></span> tab. 
         </div></li>
        <li class="step">
         <div class="para">
           When the import completes, the status will move to Down and the VM can be manually started. 
         </div></li>
       </ol>
      </div>
      <div class="para">
        For more information on importing virtual machines, see the 
       <em class="citetitle">Red Hat Enterprise Virtualization Administration Guide</em>. 
      </div>
      <div class="formalpara" id="form-Running_the_Converted_Virtual_Machine-Network_Configuration">
       <h5 class="formalpara">Network Configuration</h5> virt-v2v cannot currently reconfigure a virtual machine's network configuration. If the converted virtual machine is not connected to the same subnet as the source, its network configuration may have to be updated. 
      </div>
     </div>
     <div class="section" id="sect-Scripting_the_v2v_Process">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-Scripting_the_v2v_Process">3.3.4.&nbsp;Scripting the v2v Process</h3>
        </div>
       </div>
      </div>
      <div class="para">
        The entire v2v process can be scripted, enabling the automated batch processing of a large number of virtual machines. The process is broken up into two steps, which must be run on separate hosts. 
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           Use 
          <code class="command">virt-v2v</code> to convert the virtual machines and copy them to the export storage domain. This step must be run on a Linux host. The process is detailed in 
          <a class="xref" href="#sect-Converting_a_Virtual_Machine">Section&nbsp;3.3.2, “Converting a Virtual Machine”</a>. 
         </div></li>
        <li class="step">
         <div class="para">
           Once the conversion is complete, use the Red Hat Enterprise Virtualization Powershell API to import the virtual machines from the export storage domain. This step must be run on the Red Hat Enterprise Virtualization Manager server. The 
          <code class="command">Import-Vm</code> command performs the import process, and must be run once per virtual machine. 
         </div>
         <div class="example" id="exam-Importing_all_VMs_from_the_export_storage_domain_to_the_DataStore_storage_domain_on_the_Default_Data_Center">
          <h6>Example&nbsp;3.4.&nbsp;Importing all VMs from the export storage domain to the DataStore storage domain on the Default Data Center</h6>
          <div class="example-contents">
           <pre class="screen">$exportdomain = Get-StorageDomain | ? {$_.Name -eq &quot;export&quot;}
$datadomain = Get-StorageDomain | ? {$_.Name -eq &quot;DataStore&quot;}
$dc = Select-DataCenter Name=Default
$cluster = Select-Cluster Name=Default
$candidates = Get-VmImportCandidates -StorageDomainId $exportdomain.StorageDomainId -DataCenterId $dc.DataCenterId
foreach ($candidate in $candidates)
{
	Import-Vm -DataCenterId $dc.DataCenterId -SourceDomainId $exportdomain.StorageDomainId -DestDomainId $datadomain.StorageDomainId -ClusterId $cluster.ClusterId -VmId $candidate.VmId
}
</pre>
          </div>
         </div><br class="example-break" />
         <div class="para">
           Detailed documentation for the PowerShell API is available in the 
          <em class="citetitle">Red Hat Enterprise Virtualization PowerShell API Guide</em>. 
         </div></li>
       </ol>
      </div>
     </div>
     <div class="section" id="sect-Scripted_Bulk_v2v_Process">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-Scripted_Bulk_v2v_Process">3.3.5.&nbsp;Scripted Bulk v2v Process</h3>
        </div>
       </div>
      </div>
      <div class="para">
        For bulk import scenarios, it is advantageous to be able to perform the scripted v2v process from a single host. Remote procedure calls to the Red Hat Enterprise Virtualization Manager can be made using the REST API. This enables a single script running on a single Linux host to perform both steps of the v2v process. 
       <a class="xref" href="#figu-V2V_Guide-Scripted_Bulk_v2v_Process-Scripted_bulk_v2v_process">Figure&nbsp;3.7, “Scripted bulk v2v process”</a> illustrates the steps performed by the script. 
      </div>
      <div class="para"> 
       <div class="figure" id="figu-V2V_Guide-Scripted_Bulk_v2v_Process-Scripted_bulk_v2v_process">
        <div class="figure-contents">
         <div class="mediaobject">
          <img src="images/batched-v2v-process.png" alt="Scripted bulk v2v process" />
         </div>
        </div>
        <h6>Figure&nbsp;3.7.&nbsp;Scripted bulk v2v process</h6>
       </div>
       <br class="figure-break" /> 
      </div>
      <div class="para">
        The scripted bulk v2v process involves the following steps, as shown in 
       <a class="xref" href="#figu-V2V_Guide-Scripted_Bulk_v2v_Process-Scripted_bulk_v2v_process">Figure&nbsp;3.7, “Scripted bulk v2v process”</a>: 
       <div class="orderedlist">
        <ol>
         <li class="listitem">
          <div class="para">
            The virtual machine image is retrieved from the source hypervisor. 
          </div></li>
         <li class="listitem">
          <div class="para">
            The virtual machine image is packaged and copied to the export storage domain. 
          </div></li>
         <li class="listitem">
          <div class="para">
            A remote procedure call is made to the Red Hat Enterprise Virtualization Manager, telling it to import the virtual machine. 
          </div></li>
         <li class="listitem">
          <div class="para">
            The Manager imports the virtual machine from the import storage domain. 
          </div></li>
        </ol>
       </div> 
      </div>
      <div class="para">
        To configure and run the scripted bulk v2v process: 
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           Ensure the REST API is enabled on the Red Hat Enterprise Virtualization Manager, and it is accessible from the Linux host running the v2v process. For more information about the REST API, see the 
          <em class="citetitle">Red Hat Enterprise Virtualization REST API Guide</em>. 
         </div></li>
        <li class="step">
         <div class="para">
           On the Linux host, create the file 
          <code class="filename">v2v.sh</code> with the following contents. Ensure you edit the script to contain appropriate values for your environment. 
         </div>
         <div class="example" id="exam-Single_host_v2v_script">
          <h6>Example&nbsp;3.5.&nbsp;Single host v2v script</h6>
          <div class="example-contents">
           <pre class="programlisting">
#!/bin/sh
# Declare all VMs to import
XENDOMAINS=(&quot;rhelxen&quot; &quot;rhel2&quot;)
KVMDOMAINS=(&quot;rhelkvm&quot;)
VMWAREVMS=(&quot;rhel54vmware&quot;)

# Iterate through each Xen domain, performing the conversion
for domain in ${XENDOMAINS[@]}
do
        virt-v2v -ic xen:///localhost -o rhev -os storage.example.com:/exportdomain --network rhevm $domain
done

# Iterate through each KVM domain, performing the conversion
for domain in ${KVMDOMAINS[@]}
do
        virt-v2v -o rhev -os storage.example.com:/exportdomain --network rhevm $domain
done

# Iterate through each VMware VM, performing the conversion
for vm in ${VMWAREVMS[@]}
do
        virt-v2v -ic esx://esx.example.com/?no_verify=1 -o rhev -os storage.example.com:/exportdomain --network rhevm $vm
done

# Call the import VM procedure remotely on the RHEV Manager

# Set API variables
export BASE_URL='http://rhevm.example.com'
export HTTP_USER='rhevadmin@domain.example.com'
export HTTP_PASSWORD='password123'

# Get the storage domains
wget --auth-no-challenge --http-user=${HTTP_USER} --http-password=${HTTP_PASSWORD} --header=&quot;Accept: application/xml&quot; ${BASE_URL}/rhevm-api/storagedomains?search=name%3Dexport2 -O exportdomain
EXPORT_DOMAIN=`xpath exportdomain '/storage_domains/storage_domain/@id' | sed -e 's/ id=//' | sed -e 's/&quot;//g'`

# Get the datacenter
wget --auth-no-challenge --http-user=${HTTP_USER} --http-password=${HTTP_PASSWORD} --header=&quot;Accept: application/xml&quot; ${BASE_URL}/rhevm-api/datacenters?search=name%3D23compat -O dc
DC=`xpath dc '/data_centers/data_center/@id' | sed -e 's/ id=//' | sed -e 's/&quot;//g'`

# Get the cluster
wget --auth-no-challenge --http-user=${HTTP_USER} --http-password=${HTTP_PASSWORD} --header=&quot;Accept: application/xml&quot; ${BASE_URL}/rhevm-api/clusters?search=name%3DDefault -O cluster
CLUSTER_ELEMENT=`grep &quot;cluster id&quot; cluster`
echo ${CLUSTER_ELEMENT}

# List contents of export storage domain
wget --auth-no-challenge --http-user=${HTTP_USER} --http-password=${HTTP_PASSWORD} --header=&quot;Accept: application/xml&quot; ${BASE_URL}/rhevm-api/datacenters/${DC}/storagedomains/${EXPORT_DOMAIN}/vms -O vms

# For each vm, export
VMS=`xpath vms '/vms/vm/actions/link[@rel=&quot;import&quot;]/@href' | sed -e 's/ href=&quot;//' | sed -e 's/&quot;//'`
echo '&lt;action&gt;&lt;cluster&gt;&lt;name&gt;23compat&lt;/name&gt;&lt;/cluster&gt;&lt;storage_domain&gt;&lt;name&gt;data2&lt;/name&gt;&lt;/storage_domain&gt;&lt;/action&gt;' &gt; importaction
wget --auth-no-challenge --http-user=${HTTP_USER} --http-password=${HTTP_PASSWORD} --header=&quot;Accept: application/xml&quot; --header=&quot;Content-Type: application/xml&quot; --post-file=importaction ${BASE_URL}$VMS
</pre>
          </div>
         </div><br class="example-break" /></li>
        <li class="step">
         <div class="para">
           Run the 
          <code class="filename">v2v.sh</code> script. It can take several hours to convert and import a large number of virtual machines. 
         </div></li>
       </ol>
      </div>
     </div>
    </div>
   </div>
   <div xml:lang="en-US" class="chapter auditor-diff-mode-added" id="chap-V2V_Guide-P2V_Migration_Converting_Physical_Machines_to_Virtual_Machines" lang="en-US">
    <div class="titlepage">
     <div>
      <div>
       <h2 class="title">Chapter&nbsp;4.&nbsp;Converting Physical Machines to Virtual Machines</h2>
      </div>
     </div>
    </div>
    <div class="toc">
     <dl>
      <dt>
       <span class="section"><a href="#P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Hardware_and_Software_Requirements_for_P2V_Conversion">4.1. Prerequisites</a></span>
      </dt>
      <dt>
       <span class="section"><a href="#P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Preperation_Before_the_P2V_Migration">4.2. Preparing to Convert a Physical Machine.</a></span>
      </dt>
      <dd>
       <dl>
        <dt>
         <span class="section"><a href="#Preperation_Before_the_P2V_Migration-Install_virt_v2v_on_V2V_host">4.2.1. Install virt-v2v on Conversion Server.</a></span>
        </dt>
        <dt>
         <span class="section"><a href="#Preperation_Before_the_P2V_Migration-Enable_Root_Login_over_SSH">4.2.2. Enable Root Login over SSH.</a></span>
        </dt>
        <dt>
         <span class="section"><a href="#Preperation_Before_the_P2V_Migration-Define_a_Host_Profile_in_virt_v2v.conf">4.2.3. Define a Target Profile in <code class="filename">virt-v2v.conf</code></a></span>
        </dt>
        <dt>
         <span class="section"><a href="#Preperation_Before_the_P2V_Migration-Download_P2V_ISO_from_RHN">4.2.4. Create the Bootable Media.</a></span>
        </dt>
       </dl>
      </dd>
      <dt>
       <span class="section"><a href="#P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Converting_Physical_Machines_to_Virtual_Machines">4.3. Converting Physical Machines to Virtual Machines.</a></span>
      </dt>
      <dt>
       <span class="section"><a href="#P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Importing_and_Running_Converted_Virtual_Machines_on_Target_Hypervisors">4.4. Importing and Running Converted Virtual Machines on Target Hypervisors</a></span>
      </dt>
     </dl>
    </div>
    <div class="para">
      This chapter describes the process of converting physical machines to virtual machines(P2V). The Red Hat P2V solution includes two parts, 
     <span class="application"><strong>virt-p2v-server</strong></span> which is included in the 
     <span class="application"><strong>virt-v2v</strong></span> package, and the P2V client, 
     <code class="filename">Virt-P2V.iso</code>, a bootable disk image based on a customized Red Hat Enterprise Linux 6 image available from the Red Hat Customer Portal. Booting a physical machine from the 
     <code class="filename">Virt-P2V.iso</code> and connecting to a V2V conversion server with 
     <span class="application"><strong>virt-v2v</strong></span> installed allows data from the physical machine to be uploaded to the conversion server and converted for use with a Red Hat Virtualization technology. Output to either Red Hat Enterprise Virtualization or KVM managed by libvirt is supported. P2V is strictly a Red Hat Enterprise Linux 6 
     <span class="emphasis"><em>only</em></span> feature. You 
     <span class="emphasis"><em>cannot</em></span> P2V to a Red Hat Enterprise Linux 5 conversion server. 
    </div>
    <div class="section" id="P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Hardware_and_Software_Requirements_for_P2V_Conversion">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Hardware_and_Software_Requirements_for_P2V_Conversion">4.1.&nbsp;Prerequisites</h2>
       </div>
      </div>
     </div>
     <div class="para">
       For a physical machine to be converted using the P2V client, it must meet basic hardware requirements in order to successfully boot the P2V client: 
     </div>
     <div class="itemizedlist">
      <ul>
       <li class="listitem">
        <div class="para">
          Must be bootable from PXE, Optical Media(CD, DVD), or USB. 
        </div></li>
       <li class="listitem">
        <div class="para">
          At least 512Mb of RAM. 
        </div></li>
       <li class="listitem">
        <div class="para">
          An ethernet connection. 
        </div></li>
       <li class="listitem">
        <div class="para">
          Console access (keyboard, video, mouse). 
        </div></li>
       <li class="listitem">
        <div class="para">
          An operating system supported by virt-v2v: 
        </div>
        <div class="itemizedlist">
         <ul>
          <li class="listitem">
           <div class="para">
             Red Hat Enterprise Linux 4 
           </div></li>
          <li class="listitem">
           <div class="para">
             Red Hat Enterprise Linux 5 
           </div></li>
          <li class="listitem">
           <div class="para">
             Red Hat Enterprise Linux 6 
           </div></li>
          <li class="listitem">
           <div class="para">
             Windows XP 
           </div></li>
          <li class="listitem">
           <div class="para">
             Windows Vista 
           </div></li>
          <li class="listitem">
           <div class="para">
             Windows 7 
           </div></li>
          <li class="listitem">
           <div class="para">
             Windows Server 2003 
           </div></li>
          <li class="listitem">
           <div class="para">
             Windows Server 2008 
           </div></li>
         </ul>
        </div></li>
      </ul>
     </div>
    </div>
    <div class="section" id="P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Preperation_Before_the_P2V_Migration">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Preperation_Before_the_P2V_Migration">4.2.&nbsp;Preparing to Convert a Physical Machine.</h2>
       </div>
      </div>
     </div>
     <div class="para">
       Before you use P2V, you must first prepare your conversion server and download and prepare the 
      <span class="application"><strong>Virt-P2V.iso</strong></span> boot media. 
     </div>
     <div class="section" id="Preperation_Before_the_P2V_Migration-Install_virt_v2v_on_V2V_host">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="Preperation_Before_the_P2V_Migration-Install_virt_v2v_on_V2V_host">4.2.1.&nbsp;Install virt-v2v on Conversion Server.</h3>
        </div>
       </div>
      </div>
      <div class="para">
        A conversion server is any physical server running Red Hat Enterprise Linux 6 or higher with the 
       <span class="application"><strong>virt-v2v</strong></span> package installed on it. To install 
       <span class="application"><strong>virt-v2v</strong></span> follow the instructions in 
       <a class="xref" href="#sect-V2V_Guide-Introducing_V2V-Installing_virt_v2v">Section&nbsp;1.1, “Installing virt-v2v”</a>.
       <span class="application"><strong>virt-v2v</strong></span> version 0.8.1 or higher is required. 
      </div>
     </div>
     <div class="section" id="Preperation_Before_the_P2V_Migration-Enable_Root_Login_over_SSH">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="Preperation_Before_the_P2V_Migration-Enable_Root_Login_over_SSH">4.2.2.&nbsp;Enable Root Login over SSH.</h3>
        </div>
       </div>
      </div>
      <div class="para">
        Now that 
       <span class="application"><strong>virt-v2v</strong></span> is installed, the conversion server must be prepared to accept P2V client connections. The P2V client connects to the conversion server as root using ssh so root login over ssh must be allowed on the conversion server. 
      </div>
      <div class="formalpara">
       <h5 class="formalpara" id="id608503">Enable root login over ssh:</h5> 
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           As root, edit the sshd_config file in 
          <code class="filename">/etc/ssh/sshd_config</code>: 
          <pre class="screen">nano /etc/ssh/sshd_config</pre> 
         </div></li>
        <li class="step">
         <div class="para">
           Find the Authentication section of the file, and add a line that says &quot;PermitRootLogin yes&quot;. This line may already exist and be commented out with a &quot;#&quot;. In this case, remove the &quot;#&quot;. 
          <pre class="screen">
			# Authentication:
			#LoginGraceTime 2m
			PermitRootLogin yes
			#StrictModes yes
			#MaxAuthTries 6
			#MaxSessions 10
</pre> 
         </div></li>
        <li class="step">
         <div class="para">
           Save the updated 
          <code class="filename">/etc/ssh/sshd_config</code>. 
         </div></li>
        <li class="step">
         <div class="para">
           Restart the SSH server: 
          <pre class="screen">service ssh restart</pre> 
         </div></li>
       </ol>
      </div>
      <div class="para">
        You can now connect to the conversion server as root over ssh. 
      </div>
     </div>
     <div class="section" id="Preperation_Before_the_P2V_Migration-Define_a_Host_Profile_in_virt_v2v.conf">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="Preperation_Before_the_P2V_Migration-Define_a_Host_Profile_in_virt_v2v.conf">4.2.3.&nbsp;Define a Target Profile in <code class="filename">virt-v2v.conf</code></h3>
        </div>
       </div>
      </div>
      <div class="para">
        Now that you are able to connect to the conversion server as root, it must be preconfigured with details about what to do with the virtual machine it creates. These details are given as a target profile in the 
       <code class="filename">/etc/virt-v2v.conf</code> file on the conversion server. 
      </div>
      <div class="formalpara">
       <h5 class="formalpara" id="id592691">Define a Target Profile in <code class="filename">virt-v2v.conf</code>:</h5> 
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           As root, edit 
          <code class="filename">/etc/virt-v2v.conf</code>: 
          <pre class="screen">nano /etc/virt-v2v.conf</pre> 
         </div></li>
        <li class="step">
         <div class="para">
           Scroll to the end of the file. Before the final 
          <code class="command">&lt;/virt-v2v&gt;</code>, add the following: 
          <pre class="screen">
&lt;profile name=&quot;myrhev&quot;&gt;
&lt;method&gt;rhev&lt;/method&gt;
&lt;storage format=&quot;raw&quot; allocation=&quot;preallocated&quot;&gt;
nfs.share.com:/export1
&lt;/storage&gt;
&lt;network type=&quot;default&quot;&gt;
&lt;network type=&quot;network&quot; name=&quot;rhevm&quot;/&gt;
&lt;/network&gt;
&lt;/profile&gt;
</pre> 
         </div>
         <div class="para">
           Where: 
          <div class="itemizedlist">
           <ul>
            <li class="listitem">
             <div class="para"> 
              <code class="command">Profile Name</code> is an arbitrary, descriptive target profile name. 
             </div></li>
            <li class="listitem">
             <div class="para"> 
              <code class="command">Method</code> is the destination hypervisor type (rhev or libvirt). 
             </div></li>
            <li class="listitem">
             <div class="para"> 
              <code class="command">Storage Format</code> is the output storage format, either raw or qcow2. 
             </div></li>
            <li class="listitem">
             <div class="para"> 
              <code class="command">Allocation</code> is the output allocation policy, either preallocated or sparse. 
             </div></li>
            <li class="listitem">
             <div class="para"> 
              <code class="command">Network type</code> specifies which network that network interfaces should be connected when imported into Red Hat Enterprise Virtualization. The first network type entry contains details about network configuration before conversion, the second network type entry maps to an after conversion configuration. In the given example, any detected network card is to be mapped to the managed network called rhevm. 
             </div></li>
           </ul>
          </div> 
          <div class="important">
           <div class="admonition_header">
            <h2>Important</h2>
           </div>
           <div class="admonition">
            <div class="para">
              The value associated with the 
             <code class="command">&lt;storage format&gt;</code> tag (in the above example &quot;nfs.share.com:/export1&quot;) must match the value associated with the 
             <code class="command">&lt;method&gt;</code> tag. In this example, since the output method is &quot;rhev&quot;, the value associated with storage must be an initialized NFS share. For the libvirt method, the storage format value must be an initialized storage domain that exists locally on the conversion server, for example &quot;default&quot;. 
            </div>
           </div>
          </div> 
         </div></li>
       </ol>
      </div>
      <div class="para">
        You have created a target profile that defines what will happen to the virtual machine that results from this P2V conversion. 
      </div>
     </div>
     <div class="section" id="Preperation_Before_the_P2V_Migration-Download_P2V_ISO_from_RHN">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="Preperation_Before_the_P2V_Migration-Download_P2V_ISO_from_RHN">4.2.4.&nbsp;Create the Bootable Media.</h3>
        </div>
       </div>
      </div>
      <div class="para">
        P2V uses bootable media to create a bootable image of the hard drive of a physical machine and send it to the conversion server for import into a hypervisor. You will need a Red Hat Network account to download the 
       <span class="application"><strong>Virt-P2V.iso</strong></span>. 
      </div>
      <div class="formalpara">
       <h5 class="formalpara" id="id1309848">Download the <code class="filename">Virt-P2V.iso</code> from the Red Hat Customer Portal:</h5> 
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           Login to 
          <a href="https://rhn.redhat.com/rhn/software/downloads/SupportedISOs.do">Red Hat Network</a>. 
         </div></li>
        <li class="step">
         <div class="para">
           Select the 
          <span class="guilabel"><strong>Download</strong></span> tab, and click 
          <span class="guilabel"><strong>Downloads</strong></span>. 
         </div></li>
        <li class="step">
         <div class="para">
           In the 
          <span class="guilabel"><strong>Filter By Download Software</strong></span> field, enter Virt-P2V. Click 
          <span class="guilabel"><strong>Go</strong></span>. 
         </div></li>
        <li class="step">
         <div class="para">
           A list of packages displays. Click the link to 
          <span class="guilabel"><strong>Virt-P2V</strong></span>. 
         </div></li>
        <li class="step">
         <div class="para">
           The Details page displays, containing a description of the package. Select 
          <span class="guilabel"><strong>Virt-P2V.iso</strong></span> and save it on the conversion server. 
         </div></li>
       </ol>
      </div>
      <div class="para"> 
      </div>
      <div class="formalpara">
       <h5 class="formalpara" id="id594152">Create the appropriate bootable media:</h5> The 
       <span class="application"><strong>Virt-P2V.iso</strong></span> file can be used three ways: as a bootable disk, a PXE boot image, and as a bootable USB device. 
      </div>
      <div class="para"> 
       <div class="itemizedlist">
        <ul>
         <li class="listitem">
          <div class="para">
            Burn the ISO to a blank CD-ROM or DVD-ROM, and insert it into the disk drive of the physical machine that is to be converted. To boot properly from this boot media, some changes to BIOS settings may be required to ensure that the optical disk drive is first in the boot order. 
          </div></li>
         <li class="listitem">
          <div class="para">
            Use the ISO to create a bootable USB media. To boot properly from this boot media, some changes to BIOS settings may be required to ensure that the USB device is first in the boot order. In addition, some BIOSes do not support booting from USB media. The P2V client disk image is approximately 90 MB, so the USB device must be large enough to hold the disk image. 
          </div></li>
         <li class="listitem">
          <div class="para">
            Prepare a PXE Boot image for your existing PXE server. To boot from PXE, some changes to BIOS settings may be required to ensure that the PXE boot is first in the boot order. 
          </div></li>
        </ul>
       </div> 
      </div>
      <div class="para">
        More information about creating boot media can be found in 
       <a class="xref" href="#Appendix_Additional_Procedures">Appendix&nbsp;A, <em>Additional Procedures</em></a>. 
      </div>
      <div class="para">
        You have finished preparing and are now ready to move on to converting a physical machine to a virtual machine. 
      </div>
     </div>
    </div>
    <div class="section" id="P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Converting_Physical_Machines_to_Virtual_Machines">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Converting_Physical_Machines_to_Virtual_Machines">4.3.&nbsp;Converting Physical Machines to Virtual Machines.</h2>
       </div>
      </div>
     </div>
     <div class="para">
       By now you have prepared a conversion server and your chosen bootable media. Next you will boot the P2V client, connect to your conversion server, and convert your physical machine. The conversion process can take a long time, especially when large physical disks are being converted. 
     </div>
     <div class="formalpara">
      <h5 class="formalpara" id="id694698">Converting a virtual machine to a physical machine:</h5> 
     </div>
     <div class="procedure">
      <ol class="1">
       <li class="step">
        <div class="para">
          Boot the P2V client boot media that you created in preparation for your conversion. Because P2V client is built upon a Red Hat Enterprise Linux 6 live image, the Red Hat Enterprise Linux 6 splash image is displayed while the tool is booting. 
        </div></li>
       <li class="step">
        <div class="para">
          Configure networking. Generally the P2V client configures networking automatically using DHCP. If it is unable to configure networking automatically, you will need to configure it manually. 
         <span class="guilabel"><strong>IP Address</strong></span>, 
         <span class="guilabel"><strong>Gateway</strong></span>, and 
         <span class="guilabel"><strong>Prefix</strong></span> are required fields. Enter values that are appropriate for your network, and click 
         <span class="guilabel"><strong>Use these network settings</strong></span>. 
        </div>
        <div class="mediaobject">
         <img src="images/p2v_netconfig.png" width="444" alt="Configure Networking." />
        </div>
        <div class="important">
         <div class="admonition_header">
          <h2>Important</h2>
         </div>
         <div class="admonition">
          <div class="para">
            If for some reason manual configuration is preferred, disconnect the physical machine from the network entirely before booting. Then you will be able to enter a networking configuration directly and reconnect the physical machine to the network. 
          </div>
         </div>
        </div></li>
       <li class="step">
        <div class="para">
          When networking is configured, you are prompted for connection details for the conversion server. These include 
         <span class="guilabel"><strong>Hostname</strong></span> (either hostname or IP address), 
         <span class="guilabel"><strong>Username</strong></span> (this must be root), and 
         <span class="guilabel"><strong>Password</strong></span>. Enter these details and click 
         <span class="guilabel"><strong>Connect</strong></span>. 
        </div>
        <div class="mediaobject">
         <img src="images/p2v_connecttoconversionserver.png" width="444" alt="Connect to conversion server." />
        </div></li>
       <li class="step">
        <div class="para">
          After connecting to your conversion server configure the virtual hardware that will be attached to the converted physical machine, as well as select which physical hardware should be converted. At least one Fixed Storage device must be converted; the one containing the operating system installation. 
        </div>
        <div class="mediaobject">
         <img src="images/p2v_enterdetails.png" width="444" alt="Enter the details for the outputted virtual machine." />
        </div></li>
       <li class="step">
        <div class="para">
          Select a 
         <span class="guilabel"><strong>Destination Profile</strong></span> from the drop down menu. These reflect the target profiles included in the 
         <code class="command">/etc/virt-v2v.conf</code> file on the conversion server. 
        </div></li>
       <li class="step">
        <div class="para">
          Enter a 
         <span class="guilabel"><strong>Name</strong></span> for the Virtual Machine that will result from the conversion. 
        </div></li>
       <li class="step">
        <div class="para">
          The 
         <span class="guilabel"><strong>Number of CPUs</strong></span> and 
         <span class="guilabel"><strong>Memory(MB)</strong></span> are automatically detected and completed. Change them if more CPUs and/or Memory are desired on the outputted virtual machine. 
        </div></li>
       <li class="step">
        <div class="para">
          When 
         <span class="guilabel"><strong>Target Properties</strong></span>, 
         <span class="guilabel"><strong>Fixed Storage</strong></span>, 
         <span class="guilabel"><strong>Removable Media</strong></span>, and 
         <span class="guilabel"><strong>Network Interfaces</strong></span> have all been configured as desired, click 
         <span class="guilabel"><strong>Convert</strong></span>. 
        </div>
        <div class="mediaobject">
         <img src="images/p2v_converting.png" width="444" alt="Conversion started." />
        </div></li>
       <li class="step">
        <div class="para">
          When the conversion is complete, a Success message is displayed. You can shutdown the physical machine. 
        </div>
        <div class="mediaobject">
         <img src="images/p2v_success.png" width="444" alt="Success." />
        </div></li>
      </ol>
     </div>
     <div class="para">
       You have converted your physical machine into a virtual machine. You can now import and run it on a hypervisor. 
     </div>
    </div>
    <div class="section" id="P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Importing_and_Running_Converted_Virtual_Machines_on_Target_Hypervisors">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="P2V_Migration_Moving_workloads_from_Physical_to_Virtual_Machines-Importing_and_Running_Converted_Virtual_Machines_on_Target_Hypervisors">4.4.&nbsp;Importing and Running Converted Virtual Machines on Target Hypervisors</h2>
       </div>
      </div>
     </div>
     <div class="para"> 
     </div>
     <div class="para">
       Now that you have converted your physical machine to a virtual machine, it can be run on a hypervisor. 
     </div>
     <div class="para">
       For information on running the converted physical machine as a virtual machine on Red Hat Enterprise Linux using virt-manager, see: 
     </div>
     <div class="para"> 
      <a class="xref" href="#sect-RHEL-Running_Converted_Virtual_Machines">Section&nbsp;2.1.3, “Running Converted Virtual Machines”</a> 
     </div>
     <div class="para">
       For information on importing and running the converted physical machine as a virtual machine in Red Hat Enterprise Virtualization using the Red Hat Enterprise Virtualization Manager, see: 
     </div>
     <div class="para"> 
      <a class="xref" href="#sect-RHEV-Importing_and_Running_the_Converted_Virtual_Machine">Section&nbsp;3.3.3, “Importing and Running the Converted Virtual Machine”</a> 
     </div>
    </div>
   </div>
   <div xml:lang="en-US" class="chapter auditor-diff-mode-added" id="chap-V2V_Guide-Debugging_and_Troubleshooting" lang="en-US">
    <div class="titlepage">
     <div>
      <div>
       <h2 class="title">Chapter&nbsp;5.&nbsp;Debugging and Troubleshooting.</h2>
      </div>
     </div>
    </div>
    <div class="toc">
     <dl>
      <dt>
       <span class="section"><a href="#sect-v2v_general">5.1. Debugging V2V conversions</a></span>
      </dt>
     </dl>
    </div>
    <div class="para"> 
    </div>
    <div class="section" id="sect-v2v_general">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="sect-v2v_general">5.1.&nbsp;Debugging V2V conversions</h2>
       </div>
      </div>
     </div>
     <div class="para">
       Problems encountered when attempting a V2V conversion can be more easily explained to engineers or support services if debugging messages are enabled when V2V is run. 
     </div>
     <div class="procedure">
      <ol class="1">
       <li class="step">
        <div class="para">
          Before running a V2V conversion, enter the following in the terminal: 
        </div><pre class="screen">export LIBGUESTFS_TRACE=1
export LIBGUESTFS_DEBUG=1</pre></li>
       <li class="step">
        <div class="para">
          The above exports increase the verbosity of the V2V process, causing virt-v2v to print out messages as it runs. These messages will be displayed in the terminal from which virt-v2v is run. 
        </div></li>
       <li class="step">
        <div class="para">
          Simple redirection can be used to print virt-v2v debug messages to a file. Instead of running the conversion normally like this: 
        </div><pre class="screen">virt-v2v -i libvirtxml -os pool --bridge brname vm-name.xml</pre>
        <div class="para">
          virt-v2v can be run like this: 
        </div><pre class="screen">LIBGUESTFS_TRACE=1 LIBGUESTFS_DEBUG=1 virt-v2v -i libvirtxml -os pool --bridge brname vm-name.xml ... 2&gt;&amp;1 | tee virt-v2v.log</pre></li>
      </ol>
     </div>
    </div>
   </div>
   <div xml:lang="en-US" class="chapter auditor-diff-mode-added" id="chap-V2V_Guide-References" lang="en-US">
    <div class="titlepage">
     <div>
      <div>
       <h2 class="title">Chapter&nbsp;6.&nbsp;References</h2>
      </div>
     </div>
    </div>
    <div class="toc">
     <dl>
      <dt>
       <span class="section"><a href="#References_Virtualization__virt-v2v_Parameters">6.1. virt-v2v Parameters</a></span>
      </dt>
      <dt>
       <span class="section"><a href="#sect-V2V_Guide-References-Configuration_Changes">6.2. Configuration Changes</a></span>
      </dt>
      <dd>
       <dl>
        <dt>
         <span class="section"><a href="#References_Virtualization__virt-v2v_Configuration_Changes_Linux">6.2.1. Configuration Changes for Linux Virtual Machines</a></span>
        </dt>
        <dt>
         <span class="section"><a href="#sect-V2V_Guide-Configuration_Changes-Configuration_Changes_for_Windows_Virtual_Machines">6.2.2. Configuration Changes for Windows Virtual Machines</a></span>
        </dt>
       </dl>
      </dd>
     </dl>
    </div>
    <div class="para">
      This chapter contains reference information for 
     <code class="command">virt-v2v</code>. 
    </div>
    <div class="section" id="References_Virtualization__virt-v2v_Parameters">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="References_Virtualization__virt-v2v_Parameters">6.1.&nbsp;virt-v2v Parameters</h2>
       </div>
      </div>
     </div>
     <div class="para">
       The following parameters can be used with 
      <code class="command">virt-v2v</code>: 
     </div>
     <div class="informaltable">
      <table border="1">
       <colgroup>
        <col width="29%" />
        <col width="71%" />
       </colgroup>
       <tbody>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-i <em class="replaceable"><code>input</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Specifies the input method to obtain the guest for conversion. The default is libvirt. Supported options are: 
          </div> 
          <div class="variablelist">
           <dl>
            <dt class="varlistentry">
             <span class="term"><code class="literal">libvirt</code></span>
            </dt>
            <dd>
             <div class="para">
              Guest argument is the name of a libvirt domain.
             </div>
            </dd>
            <dt class="varlistentry">
             <span class="term"><code class="literal">libvirtxml</code></span>
            </dt>
            <dd>
             <div class="para">
               Guest argument is the path to an XML file containing a libvirt domain. 
             </div>
            </dd>
           </dl>
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-ic <em class="replaceable"><code>URI</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Specifies the connection to use when using the libvirt input method. If omitted, this defaults to qemu:///system. 
          </div> 
          <div class="para"> 
           <code class="command">virt-v2v</code> can currently automatically obtain guest storage from local libvirt connections, ESX connections, and connections over SSH. Other types of connection are not supported. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-o <em class="replaceable"><code>method</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Specifies the output method. If no output method is specified, the default is libvirt. Supported output methods are: 
          </div> 
          <div class="variablelist">
           <dl>
            <dt class="varlistentry">
             <span class="term"><code class="literal">libvirt</code></span>
            </dt>
            <dd>
             <div class="para">
               Create a libvirt guest. See the 
              <code class="option">-oc</code> and 
              <code class="option">-os</code> options. 
              <code class="option">-os</code> must be specified for the libvirt output method. 
             </div>
            </dd>
            <dt class="varlistentry">
             <span class="term"><code class="literal">rhev</code></span>
            </dt>
            <dd>
             <div class="para">
               Create a guest on a Red Hat Enterprise Virtualization Export storage domain, which can later be imported using the manager. The export storage domain must be specified using 
              <code class="option">-os</code> for the 
              <code class="literal">rhev</code> output method. 
             </div>
            </dd>
           </dl>
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-oc <em class="replaceable"><code>URI</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Specifies the libvirt connection to use to create the converted guest. If omitted, this defaults to qemu:///system. Note that virt-v2v must be able to write directly to storage described by this libvirt connection. This makes writing to a remote connection impractical at present. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-os <em class="replaceable"><code>storage</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Specifies the location where new storage will be created for the converted guest. This is dependent on the output method, specified by the 
           <em class="parameter"><code>-o</code></em> parameter. 
          </div> 
          <div class="para">
            For the 
           <code class="literal">libvirt</code> output method, this must be the name of a storage pool. For the 
           <code class="literal">rhev</code> output method, this specifies the NFS path to a Red Hat Enterprise Virtualization export storage domain. Note that the storage domain must have been previously initialized by the Red Hat Enterprise Virtualization Manager. The domain must be in the format &lt;
           <em class="replaceable"><code>host</code></em>&gt;:&lt;
           <em class="replaceable"><code>path</code></em>&gt;, for example, 
           <code class="filename">rhev-storage.example.com:/rhev/export</code>. 
          </div> 
          <div class="para">
            The NFS export must be mountable and writable by the host running virt-v2v. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-op <em class="replaceable"><code>pool</code></em></code> (deprecated) 
          </div> </td>
         <td> 
          <div class="para">
            This parameter is still supported, but is deprecated in favor of 
           <em class="parameter"><code>-os</code></em>. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-osd domain</code> (deprecated) 
          </div> </td>
         <td> 
          <div class="para">
            This parameter is still supported, but is deprecated in favor of 
           <em class="parameter"><code>-os</code></em>. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-of <em class="replaceable"><code>format</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Specifies the on-disk format which will be used for the converted guest. Currently supported options are 
           <code class="literal">raw</code> and 
           <code class="literal">qcow2</code>. The output format does not need to be the same as the source format - 
           <span class="application"><strong>virt-v2v</strong></span> can convert from 
           <code class="literal">raw</code> to 
           <code class="literal">qcow2</code> and vice versa. If not specified, the converted guest will use the same format as the source guest. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-oa <em class="replaceable"><code>allocation</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Specifies whether the converted guest should use 
           <code class="literal">sparse</code> or 
           <code class="literal">preallocated</code> storage. The allocation scheme does not need to be the same as the source scheme - virt-v2v can convert from sparse to preallocated and vice versa. If not specified, the converted guest will use the same allocation scheme as the source. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-on <em class="replaceable"><code>outputname</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Renames the guest. If this option is not used, then the output name is the same as the input name. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-f <em class="replaceable"><code>file</code></em> | --config <em class="replaceable"><code>file</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Load a virt-v2v configuration from file. Multiple configuration files can be specified; these will be searched in the order in which they are specified. If no configuration is specified, the defaults are 
           <code class="filename">/etc/virt-v2v.conf</code> and 
           <code class="filename">/var/lib/virt-v2v/virt-v2v.db</code> in that order. 
          </div> 
          <div class="important">
           <div class="admonition_header">
            <h2>Important</h2>
           </div>
           <div class="admonition">
            <div class="para">
              When overriding the default configuration details, we recommend also specifying 
             <code class="filename">/var/lib/virt-v2v/virt-v2v.db</code>, as it contains default configuration data required for conversions. 
            </div>
           </div>
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-n <em class="replaceable"><code>network</code></em> | --network <em class="replaceable"><code>network</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Map all guest bridges or networks which don't have a mapping in the configuration file to the specified network. 
          </div> 
          <div class="para">
            This option cannot be used in conjunction with 
           <em class="parameter"><code>--bridge</code></em>. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-b <em class="replaceable"><code>bridge</code></em> | --bridge <em class="replaceable"><code>bridge</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Map all guest bridges or networks which don't have a mapping in the configuration file to the specified bridge. 
          </div> 
          <div class="para">
            This option cannot be used in conjunction with 
           <em class="parameter"><code>--network</code></em>. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">-p <em class="replaceable"><code>profile</code></em> | --profile <em class="replaceable"><code>profile</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            Use the default values for output method, output storage and network mappings from 
           <em class="replaceable"><code>profile</code></em> in the configuration file. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">--root=<em class="replaceable"><code>filesystem</code></em></code> 
          </div> </td>
         <td> 
          <div class="para">
            In a multi-boot virtual machine, select the root file system to be converted. The default value for this option is 
           <code class="literal">--root=ask</code>. When this option is selected, 
           <span class="application"><strong>virt-v2v</strong></span> lists the possible root file systems and asks the user which file system should be used. 
          </div> 
          <div class="warning">
           <div class="admonition_header">
            <h2>Warning</h2>
           </div>
           <div class="admonition">
            <div class="para">
              In versions of Red Hat Enterprise Linux earlier than version 6.3, the default value was 
             <code class="literal">--root=single</code>, which could cause 
             <span class="application"><strong>virt-v2v</strong></span> to fail when a multi-boot virtual machine was detected. 
            </div>
           </div>
          </div> 
          <div class="para">
            Other available options include: 
          </div> 
          <div class="variablelist">
           <dl>
            <dt class="varlistentry">
             <span class="term"><code class="literal">first</code></span>
            </dt>
            <dd>
             <div class="para">
               Selects the first root device if multiple devices are detected. Since this is a heuristic, the choice may not always be correct. 
             </div>
            </dd>
            <dt class="varlistentry">
             <span class="term"><code class="literal">single</code></span>
            </dt>
            <dd>
             <div class="para">
               Specifies that there is only one root device available to use. 
              <span class="application"><strong>virt-v2v</strong></span> will fail if more than one device is detected. 
             </div>
            </dd>
            <dt class="varlistentry">
             <span class="term"><code class="literal"><em class="replaceable"><code>&lt;path&gt;</code></em></code></span>
            </dt>
            <dd>
             <div class="para">
               Specifies a particular root device to use, for example, 
              <code class="literal">--root=/dev/sda2</code> would specify the second partition on the first hard drive. If the specified device does not exist or was not detected as a root device, 
              <span class="application"><strong>virt-v2v</strong></span> will fail. 
             </div>
            </dd>
           </dl>
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para"> 
           <code class="literal">--list-profiles</code> 
          </div> </td>
         <td> 
          <div class="para">
            Display a list of target profile names specified in the configuration file. 
          </div> </td>
        </tr>
        <tr>
         <td> 
          <div class="para">
           <code class="literal">--help</code>
          </div> </td>
         <td>Display brief help.</td>
        </tr>
        <tr>
         <td> 
          <div class="para">
           <code class="literal">--version</code>
          </div> </td>
         <td> Display version number and exit. </td>
        </tr>
       </tbody>
      </table>
     </div>
    </div>
    <div class="section" id="sect-V2V_Guide-References-Configuration_Changes">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="sect-V2V_Guide-References-Configuration_Changes">6.2.&nbsp;Configuration Changes</h2>
       </div>
      </div>
     </div>
     <div class="para">
       As well as configuring libvirt appropriately, 
      <code class="command">virt-v2v</code> will make certain changes to a guest to enable it to run on a KVM hypervisor either with or without virtio drivers. These changes are specific to the guest operating system. The details specified here pertain to supported Red Hat based Linux distributions and Windows. 
     </div>
     <div class="section" id="References_Virtualization__virt-v2v_Configuration_Changes_Linux">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="References_Virtualization__virt-v2v_Configuration_Changes_Linux">6.2.1.&nbsp;Configuration Changes for Linux Virtual Machines</h3>
        </div>
       </div>
      </div>
      <div class="table" id="References_Virtualization__virt-v2v_Configuration_Changes_Linux_changes-to-vm">
       <h6>Table&nbsp;6.1.&nbsp;virt-v2v changes to Linux virtual machines</h6>
       <div class="table-contents">
        <table summary="virt-v2v changes to Linux virtual machines" border="1">
         <colgroup>
          <col width="50%" />
          <col width="50%" />
         </colgroup>
         <thead>
          <tr>
           <th>Change</th>
           <th>Description</th>
          </tr>
         </thead>
         <tbody>
          <tr>
           <td>Kernel</td>
           <td>Unbootable kernels (i.e. Xen para-virtualized kernels) will be uninstalled. No new kernel will be installed if there is a remaining kernel which supports virtio. If no remaining kernel supports virtio and the configuration file specifies a new kernel it will be installed and configured as the default.</td>
          </tr>
          <tr>
           <td>X reconfiguration</td>
           <td>If the guest has X configured, its display driver will be updated. See <a class="xref" href="#References_Virtualization__virt-v2v_Configuration_Changes_Linux_drivers">Table&nbsp;6.2, “Configured drivers in a Linux Guest”</a> for which driver will be used.</td>
          </tr>
          <tr>
           <td>Rename block devices</td>
           <td>If changes have caused block devices to change name, these changes will be reflected in <code class="filename">/etc/fstab</code></td>
          </tr>
          <tr>
           <td>Configure device drivers</td>
           <td>Whether virtio or non-virtio drivers are configured, <code class="command">virt-v2v</code> will ensure that the correct network and block drivers are specified in the modprobe configuration.</td>
          </tr>
          <tr>
           <td>initrd</td>
           <td><code class="command">virt-v2v</code> will ensure that the initrd for the default kernel supports booting the root device, whether it is using virtio or not.</td>
          </tr>
          <tr>
           <td>SELinux</td>
           <td><code class="command">virt-v2v</code> will initiate a relabel of the guest on the next boot. This ensures that any changes it has made are correctly labeled according to the guest's local policy.</td>
          </tr>
         </tbody>
        </table>
       </div>
      </div>
      <br class="table-break" />
      <div class="para">
       <code class="command">virt-v2v</code> will configure the following drivers in a Linux guest:
      </div>
      <div class="table" id="References_Virtualization__virt-v2v_Configuration_Changes_Linux_drivers">
       <h6>Table&nbsp;6.2.&nbsp;Configured drivers in a Linux Guest</h6>
       <div class="table-contents">
        <table summary="Configured drivers in a Linux Guest" border="1">
         <colgroup>
          <col width="50%" />
          <col width="50%" />
         </colgroup>
         <thead>
          <tr>
           <th>Para-virtualized driver type</th>
           <th>Driver module</th>
          </tr>
         </thead>
         <tbody>
          <tr>
           <td>Display</td>
           <td>cirrus</td>
          </tr>
          <tr>
           <td>Storage</td>
           <td>virtio_blk</td>
          </tr>
          <tr>
           <td>Network</td>
           <td>virtio_net</td>
          </tr>
          <tr>
           <td>In addition, initrd will preload the virtio_pci driver</td>
           <td class="auto-generated">&nbsp;</td>
          </tr>
         </tbody>
        </table>
        <table summary="Configured drivers in a Linux Guest" border="1">
         <colgroup>
          <col width="50%" />
          <col width="50%" />
         </colgroup>
         <thead>
          <tr>
           <th>Other drivers</th>
           <th>&nbsp;</th>
          </tr>
         </thead>
         <tbody>
          <tr>
           <td>Display</td>
           <td>cirrus</td>
          </tr>
          <tr>
           <td>Block</td>
           <td>Virtualized IDE</td>
          </tr>
          <tr>
           <td>Network</td>
           <td>Virtualized e1000</td>
          </tr>
         </tbody>
        </table>
       </div>
      </div>
      <br class="table-break" />
     </div>
     <div class="section" id="sect-V2V_Guide-Configuration_Changes-Configuration_Changes_for_Windows_Virtual_Machines">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="sect-V2V_Guide-Configuration_Changes-Configuration_Changes_for_Windows_Virtual_Machines">6.2.2.&nbsp;Configuration Changes for Windows Virtual Machines</h3>
        </div>
       </div>
      </div>
      <div class="warning">
       <div class="admonition_header">
        <h2>Install <span class="package">libguestfs-winsupport</span> and <span class="package">virtio-win</span> packages</h2>
       </div>
       <div class="admonition">
        <div class="para">
          Before converting Windows virtual machines, ensure that the 
         <span class="package">libguestfs-winsupport</span> and 
         <span class="package">virtio-win</span> packages are installed on the host running 
         <code class="command">virt-v2v</code>. These packages provide support for NTFS and Windows para-virtualized block and network drivers. If you attempt to convert a virtual machine using NTFS without the 
         <span class="package">libguestfs-winsupport</span> package installed, the conversion will fail. If you attempt to convert a virtual machine running Windows without the 
         <span class="package">virtio-win</span> package installed, the conversion will fail giving an error message concerning missing files. See 
         <a class="xref" href="#sect-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Preparing_to_convert_a_virtual_machine_running_Windows">Section&nbsp;2.1.1.2, “Preparing to convert a virtual machine running Windows”</a> for details. 
        </div>
       </div>
      </div>
      <div class="para"> 
       <code class="command">virt-v2v</code> can convert virtual machines running Windows XP, Windows Vista, Windows 7, Windows Server 2003 and Windows Server 2008. The conversion process for virtual machines running Windows is slightly to different to the process for virtual machines running Linux. Windows virtual machine images are converted as follows: 
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           virt-v2v installs virtio block drivers. 
         </div></li>
        <li class="step">
         <div class="para">
           virt-v2v installs the CDUpgrader utility. 
         </div></li>
        <li class="step">
         <div class="para">
           virt-v2v copies virtio block and network drivers to 
          <code class="filename">%SystemRoot%\Drivers\VirtIO</code>. The 
          <span class="package">virtio-win</span> package does not include network drivers for Windows 7 and Windows XP. For those operating systems, the rtl8139 network drivers are used. rtl8139 support must be already available in the guest. 
         </div></li>
        <li class="step">
         <div class="para">
           virt-v2v adds 
          <code class="filename">%SystemRoot%\Drivers\VirtIO</code> to 
          <code class="systemitem">DevicePath</code>, meaning this directory is automatically searched for drivers when a new device is detected. 
         </div></li>
        <li class="step">
         <div class="para">
           virt-v2v makes registry changes to include the virtio block drivers in the 
          <code class="systemitem">CriticalDeviceDatabase</code> section of the registry, and ensure the CDUpgrader service is started at the next boot. 
         </div></li>
       </ol>
      </div>
      <div class="para">
        At this point, 
       <code class="command">virt-v2v</code> has completed the conversion. The converted virtual machine is now fully functional, and the conversion is complete for output to KVM managed by libvirt. If the virtual machine is being converted for output to Red Hat Enterprise Virtualization, the Red Hat Enterprise Virtualization Manager will perform additional steps to complete the conversion: 
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           The virtual machine is imported and run on the Manager. See the 
          <em class="citetitle">Red Hat Enterprise Virtualization Administration Guide</em> for details. 
         </div>
         <div class="important">
          <div class="admonition_header">
           <h2>Do not interrupt the virtual machine import process</h2>
          </div>
          <div class="admonition">
           <div class="para">
             The first boot stage can take several minutes to run, and must not be interrupted. It will run automatically without any administrator intervention other than starting the virtual machine. To ensure the process is not interrupted, no user should login to the virtual machine until it has quiesced. You can check for this in the Manager GUI. 
           </div>
          </div>
         </div></li>
        <li class="step">
         <div class="para">
           If the Guest Tools ISO has been uploaded to the Manager, as detailed in 
          <a class="xref" href="#sect-V2V_Guide-Preparing_to_Convert_a_Virtual_Machine-Preparing_to_convert_a_virtual_machine_running_Windows">Section&nbsp;2.1.1.2, “Preparing to convert a virtual machine running Windows”</a>, the Manager attaches the Guest Tools CD to the virtual machine. 
         </div></li>
        <li class="step">
         <div class="para">
           CDUpgrader detects the Guest Tools ISO and installs all the virtio drivers from it, including additional tools that are not included in 
          <span class="package">virtio-win</span>. The virtio drivers are re-installed if the drivers in the Guest Tools ISO are newer than the ones previously installed from 
          <span class="package">virtio-win</span>. This ensures that the tools are kept up to date. 
         </div></li>
       </ol>
      </div>
     </div>
    </div>
   </div>
   <div xml:lang="en-US" class="appendix auditor-diff-mode-added" id="Appendix_Additional_Procedures" lang="en-US">
    <div class="titlepage">
     <div>
      <div>
       <h1 class="title">Additional Procedures</h1>
      </div>
     </div>
    </div>
    <div class="section" id="Creating_Bootable_Media">
     <div class="titlepage">
      <div>
       <div>
        <h2 class="title" id="Creating_Bootable_Media">A.1.&nbsp;Creating Bootable Media</h2>
       </div>
      </div>
     </div>
     <div class="para">
       The P2V Client can be booted from PXE boot, a bootable USB device, or optical media. Scripts for preparing boot options are included with the Virt-P2V.iso in the LiveOS directory. 
     </div>
     <div class="section" id="From_CD">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="From_CD">A.1.1.&nbsp;Create a P2V Client Boot CD</h3>
        </div>
       </div>
      </div>
      <div class="para">
        The exact series of steps that produces a CD from an image file varies greatly from computer to computer, depending on the operating system and disc burning software installed. This procedure describes burning an ISO image to disk using 
       <span class="application"><strong>Brasero</strong></span> which is included in RHEL6. 
      </div>
      <div class="para">
        Make sure that your disc burning software is capable of burning discs from image files. Although this is true of most disc burning software, exceptions exist. 
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           Insert a blank, writable CD into your computer's CD or DVD burner. 
         </div></li>
        <li class="step">
         <div class="para">
           Open the 
          <span class="guilabel"><strong>Applications</strong></span> menu, choose the 
          <span class="guimenuitem"><strong>Sound and Video</strong></span> sub-menu, and click 
          <span class="guimenuitem"><strong>Brasero Disk Burner</strong></span>. 
         </div></li>
        <li class="step">
         <div class="para">
           Click the 
          <span class="guibutton"><strong>Burn Image</strong></span> button. 
         </div></li>
        <li class="step">
         <div class="para">
           Click the 
          <span class="guibutton"><strong>Click here to select a disc image</strong></span> button. 
         </div></li>
        <li class="step">
         <div class="para">
           Browse to the Virt-P2V.iso and select it for burning. 
         </div></li>
        <li class="step">
         <div class="para">
           Click 
          <span class="guibutton"><strong>Burn</strong></span>. 
         </div></li>
       </ol>
      </div>
      <div class="para">
        Your BIOS may need to be changed to allow booting from your DVD/CD-ROM drive. 
      </div>
     </div>
     <div class="section" id="From_USB">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="From_USB">A.1.2.&nbsp;Create a Bootable P2V USB Media</h3>
        </div>
       </div>
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           As root, mount the Virt-P2V.iso: 
         </div><pre class="screen">mkdir /mnt/p2vmount</pre><pre class="screen">mount -o loop Virt-P2V.iso /mnt/p2vmount</pre></li>
        <li class="step">
         <div class="para">
           Attach you USB device to the computer. For the 
          <span class="application"><strong>livecd-iso-to-disk</strong></span> script to function, the USB filesystem 
          <span class="emphasis"><em>must</em></span> be formatted vfat, ext[234] or btrfs 
         </div></li>
        <li class="step">
         <div class="para">
           From a terminal as root run the 
          <span class="application"><strong>livecd-iso-to-disk</strong></span> script: 
         </div><pre class="screen">bash /mnt/p2vmount/LiveOS/livecd-iso-to-disk /PATH/TO/Virt-P2V.iso /dev/YOURUSBDEVICE</pre></li>
        <li class="step">
         <div class="para">
           When the script finishes successfully, eject the USB device. 
         </div></li>
       </ol>
      </div>
     </div>
     <div class="section" id="From_PXE">
      <div class="titlepage">
       <div>
        <div>
         <h3 class="title" id="From_PXE">A.1.3.&nbsp;Create a PXE Boot Image</h3>
        </div>
       </div>
      </div>
      <div class="procedure">
       <ol class="1">
        <li class="step">
         <div class="para">
           As root, mount the Virt-P2V.iso 
         </div><pre class="screen">mkdir /mnt/p2vmount</pre><pre class="screen">mount -o loop Virt-P2V.iso /mnt/p2vmount</pre></li>
        <li class="step">
         <div class="para">
           From a terminal as root run the 
          <span class="application"><strong>livecd-iso-to-pxeboot</strong></span> script: 
         </div><pre class="screen">bash /mnt/p2vboot/LiveOS/livecd-iso-to-pxeboot /PATH/TO/Virt-P2V.iso</pre>
         <div class="para">
           When the command successfully completes, there is a tftpboot directory in the directory from which the command was run. 
         </div></li>
        <li class="step">
         <div class="para">
           Rename the newly created tftpboot directory to a more descriptive name: 
         </div><pre class="screen">mv tftpboot/ p2vboot/</pre></li>
        <li class="step">
         <div class="para">
           Copy the p2vboot/ sub-directory to the /tftpboot directory: 
          <pre class="screen">cp -R p2vboot/ /tftpboot/</pre> Set up your DHCP, TFTP and PXE server to serve 
          <code class="filename">/tftpboot/p2vboot/pxeboot.0</code> . 
         </div>
         <div class="note">
          <div class="admonition_header">
           <h2>Note</h2>
          </div>
          <div class="admonition">
           <div class="para">
             The initrd image contains the whole CD ISO. You will notice when pxebooting that initrd can take a long time to download. This is normal behavior. 
           </div>
          </div>
         </div></li>
       </ol>
      </div>
     </div>
    </div>
   </div>
   <div xml:lang="en-US" class="appendix auditor-diff-mode-added" id="appe-V2V_Guide-Revision_History" lang="en-US">
    <div class="titlepage">
     <div>
      <div>
       <h1 class="title">Revision History</h1>
      </div>
     </div>
    </div>
    <div class="para"> 
     <div class="revhistory">
      <table border="0" width="100%" summary="Revision history">
       <tbody>
        <tr>
         <th align="left" valign="top" colspan="3"><strong>Revision History</strong></th>
        </tr>
        <tr>
         <td align="left">Revision 10-0</td>
         <td align="left">Monday January 23 2012</td>
         <td align="left"><span class="author"><span class="firstname">Laura</span> <span class="surname">Bailey</span></span></td>
        </tr>
        <tr>
         <td align="left" colspan="3"> 
          <table border="0" summary="Simple list" class="simplelist">
           <tbody>
            <tr>
             <td>Corrected word usage according to style guide (<a href="https://bugzilla.redhat.com/show_bug.cgi?id=733005">BZ#733005</a>).</td>
            </tr>
            <tr>
             <td>Updated use of the <em class="parameter"><code>--file</code></em> parameter (<a href="https://bugzilla.redhat.com/show_bug.cgi?id=749766">BZ#749766</a>).</td>
            </tr>
            <tr>
             <td>Corrected channel command usage (<a href="https://bugzilla.redhat.com/show_bug.cgi?id=765869">BZ#765869</a>).</td>
            </tr>
           </tbody>
          </table> </td>
        </tr>
        <tr>
         <td align="left">Revision 9-0</td>
         <td align="left">Thursday December 08 2011</td>
         <td align="left"><span class="author"><span class="firstname">Laura</span> <span class="surname">Bailey</span></span></td>
        </tr>
        <tr>
         <td align="left" colspan="3"> 
          <table border="0" summary="Simple list" class="simplelist">
           <tbody>
            <tr>
             <td>Reinstated P2V-related content previously included by Tim Hildred.</td>
            </tr>
            <tr>
             <td>Adjusted formatting to make replaceable content more readily identifiable.</td>
            </tr>
            <tr>
             <td>Updated parameters available for use with virt-v2v.</td>
            </tr>
            <tr>
             <td>Added admonition about attempting to convert the Windows Recovery Console.</td>
            </tr>
           </tbody>
          </table> </td>
        </tr>
        <tr>
         <td align="left">Revision 7-0</td>
         <td align="left">Friday December 02 2011</td>
         <td align="left"><span class="author"><span class="firstname">Laura</span> <span class="surname">Bailey</span></span></td>
        </tr>
        <tr>
         <td align="left" colspan="3"> 
          <table border="0" summary="Simple list" class="simplelist">
           <tbody>
            <tr>
             <td>Release for GA of Red Hat Enterprise Linux 6.2.</td>
            </tr>
           </tbody>
          </table> </td>
        </tr>
        <tr>
         <td align="left">Revision 6-0</td>
         <td align="left">Friday July 22 2011</td>
         <td align="left"><span class="author"><span class="firstname">Tim</span> <span class="surname">Hildred</span></span></td>
        </tr>
        <tr>
         <td align="left" colspan="3"> 
          <table border="0" summary="Simple list" class="simplelist">
           <tbody>
            <tr>
             <td>Promoted and emphasised section detailing acceptable storage format/allocation policy combinations</td>
            </tr>
            <tr>
             <td>Changed warnings to importants</td>
            </tr>
           </tbody>
          </table> </td>
        </tr>
        <tr>
         <td align="left">Revision 5-0</td>
         <td align="left">Friday June 17 2011</td>
         <td align="left"><span class="author"><span class="firstname">Tim</span> <span class="surname">Hildred</span></span></td>
        </tr>
        <tr>
         <td align="left" colspan="3"> 
          <table border="0" summary="Simple list" class="simplelist">
           <tbody>
            <tr>
             <td>Fixed the following bugs: </td>
            </tr>
            <tr>
             <td>BZ#712320 -Added warnings about transferring multiple HDD images over ssh.</td>
            </tr>
            <tr>
             <td>BZ#696050 -Can't import qcow2/preallocated guest to NFS data domain when convert a qcow2/sparse guest with -oa preallocated parameter. .</td>
            </tr>
            <tr>
             <td>BZ#710161 -Section detailing the installation of the pre-reqs for virt-v2v is not detailed enough.</td>
            </tr>
           </tbody>
          </table> </td>
        </tr>
        <tr>
         <td align="left">Revision 4-0</td>
         <td align="left">Monday April 11 2011</td>
         <td align="left"><span class="author"><span class="firstname">Cheryn</span> <span class="surname">Tan</span></span></td>
        </tr>
        <tr>
         <td align="left" colspan="3"> 
          <table border="0" summary="Simple list" class="simplelist">
           <tbody>
            <tr>
             <td>Fixed the following bugs: </td>
            </tr>
            <tr>
             <td>BZ#694773 - It is not required for upload Guest Tools ISO for guest to install driver</td>
            </tr>
            <tr>
             <td>BZ#694778 - It's better to add converting a remote KVM virtual machine to RHEV to guide </td>
            </tr>
            <tr>
             <td>BZ#694775 - The virt-v2v convert command syntax &quot;virt-v2v -os pool --network netname vm-name&quot; need update </td>
            </tr>
           </tbody>
          </table> </td>
        </tr>
        <tr>
         <td align="left">Revision 3-0</td>
         <td align="left">Friday April 8 2011</td>
         <td align="left"><span class="author"><span class="firstname">Cheryn</span> <span class="surname">Tan</span></span></td>
        </tr>
        <tr>
         <td align="left" colspan="3"> 
          <table border="0" summary="Simple list" class="simplelist">
           <tbody>
            <tr>
             <td>Fixed the following bugs: </td>
            </tr>
            <tr>
             <td>BZ#694437 - The time stamp of copyright should be updated</td>
            </tr>
            <tr>
             <td>BZ#694441 - Can't obtain virt-v2v relevant software with the V2V Guide steps</td>
            </tr>
            <tr>
             <td>BZ#694442 - The doc should update about portmap service, as portmap is replaced by rpcbind in RHEL6</td>
            </tr>
           </tbody>
          </table> </td>
        </tr>
        <tr>
         <td align="left">Revision 2-0</td>
         <td align="left">Monday November 29 2010</td>
         <td align="left"><span class="author"><span class="firstname">David</span> <span class="surname">Jorm</span></span></td>
        </tr>
        <tr>
         <td align="left" colspan="3"> 
          <table border="0" summary="Simple list" class="simplelist">
           <tbody><tr><td>Complete draft except for example 3.3</td></tr></tbody></table>

				</td></tr><tr><td align="left">Revision 1-0</td><td align="left">Monday October 25 2010</td><td align="left"><span class="author"><span class="firstname">David</span> <span class="surname">Jorm</span></span></td></tr><tr><td align="left" colspan="3">
					<table border="0" summary="Simple list" class="simplelist"><tr><td>Initial build</td></tr></table>

				</td></tr></tbody></table></div>

	</div></div></div></body></html>
  